我有一个通过指令更新的输入。我在其中一个属性上保存了一个值,但我想在输入中获取文本,因此输入有另一个ng模型。
但是,更新输入时,它不会更新模型。我也尝试过更改事件,但似乎也无法正常工作。该模型没有更新。
我使用plunker简化了一个示例。
var app = angular.module('plunker', []);
var input;
$(document).ready(function(){
input = $('input');
});
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
setTimeout(function(){
$scope.$apply(function(){
input.val('test');
});
},1000);
$scope.$watch('data.text', function(newValue,oldValue){
if (newValue === 'test'){
alert('Eureka!');
}
});
});
正如你所看到的,尤里卡永远不会被触发。只是为了澄清一下,在plunker中我可以访问$ scope并更改它,但是我在一个指令中有一个与此类似的代码,我无法访问该范围。我只想让事情好像我手动写东西一样。您可以删除t
并将其添加回来获取Eureka。
答案 0 :(得分:0)
这就是我如何从控制台修改范围(在角度之外) 希望有任何帮助
$("input").scope().$apply(function(scope){
scope.data = "new value";
})