从 AngularJS 中的指令回调函数更改模型不起作用
Changing a model from a directive callback function in AngularJS has no effect
所以,我想要的是一个自定义指令,它将读取并清除当前选择,然后将所选文本传递给回调函数。这有效,但是无论我在该回调函数中做什么,都对作用域没有影响,这让我相信有多个作用域,它们以某种方式相互冲突。
首先,我定义了这样的指令:
angular.module('app').directive('onTextSelected', ['$window', function ($window) {
return {
restrict: 'A',
scope: {selectFn: '&'},
link: function (scope, element, attrs) {
$(element).mouseup(function () {
var selection = $window.getSelection().toString();
if ($window.getSelection().removeAllRanges) {
$window.getSelection().removeAllRanges();
} else if ($window.getSelection().empty) {
$window.getSelection().empty();
}
if (selection && selection.trim() !== "") {
scope.selectFn({
text: selection.trim()
});
}
});
}
};
}]);
它在模板中的用法如下:
<pre ng-bind-html="message" id="messagePre" on-text-selected
select-fn="textSelected(text)"></pre>
这是回调函数:
$scope.textSelected = function (text) {
console.log(text);
$scope.currentText = text;
};
我有一个使用 $scope.textSelected
作为模型的文本框,使用另一个函数的相同代码设置它可以正常工作,但在这种情况下它就是不行。尽管所有代码都被执行(例如,它在控制台上打印),但没有任何反应。
调用后工作
$scope.$digest()
或使用
$scope.$apply()
可能与这里jQuery的使用有关。
相关文章:
- 角度无线电按钮ng模型不起作用
- 初始化ng模型时,Angular ui选择占位符不起作用
- 角度去抖动(ng模型选项)不起作用
- ng模型在$(element).clone()之后不起作用
- 如果条件在代码点火器的模型中不起作用
- 挖空.js嵌套视图模型不起作用
- 为什么我的视图模型不起作用
- 使用嵌套ng中带有单选按钮的ng模型重复不起作用
- 当使用jQuery设置值时,ng模型不起作用
- 有角度的ng模型在ng重复中不起作用
- Select选项包含在验证模型MVC时不起作用
- 自定义主干.模型操作不起作用
- ArangoDB Foxx 模型日期时间戳不起作用
- 角度ng模型不起作用
- jQuery 模型弹出窗口不起作用
- 猫鼬导入模型不起作用
- 以编程方式更改模型时,ngChange 不起作用
- 角度JS模型更新不起作用
- 使用 JavaScript 复制模型的输入文本不起作用
- 从 AngularJS 中的指令回调函数更改模型不起作用