如何通过更新其值更新输入ngModel?

时间:2014-02-12 12:47:56

标签: javascript jquery angularjs

我有一个通过指令更新的输入。我在其中一个属性上保存了一个值,但我想在输入中获取文本,因此输入有另一个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。

1 个答案:

答案 0 :(得分:0)

这就是我如何从控制台修改范围(在角度之外) 希望有任何帮助

$("input").scope().$apply(function(scope){
    scope.data = "new value";
})