Angular js $ setViewValue不会影响ngModel

时间:2014-11-09 13:37:30

标签: javascript angularjs angularjs-directive

我不明白为什么在im调用$ setViewValue函数时更新表达式和ng模型值。

这是掠夺者:

http://plnkr.co/edit/2xdsujEsqDVVXaSPNqYE?p=preview

代码:

  <body ng-controller="MainCtrl">
    <input type="text" ng-model="user.name" set-value>
    {{user.name}}
    <input type="button" value="click" ng-click="change()">
  </body>
var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.user = {name:'name'};
})
.directive('setValue', function() {
  return {
    restrict:'A',
    require:'ngModel',
    link: function(scope,ele, attr, ctrl) {
      scope.change = function() {
        ctrl.$setViewValue('text');
      }

    }
  }
})

1 个答案:

答案 0 :(得分:0)

ctrl.$render()之后立即尝试添加ctrl.$setViewValue('text')。这将导致使用最新的模型更改来更新UI。