javascript - Angularjs $setViewValue 不影响 ngModel

标签 javascript angularjs angularjs-directive

我不明白为什么当我调用 $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');
      }

    }
  }
})

最佳答案

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

关于javascript - Angularjs $setViewValue 不影响 ngModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26828780/

相关文章:

javascript - ngRepeat 无项目时处理

javascript - 当指令手动替换元素的内容时,ngRepeat 不会删除旧条目

javascript - 构造 json 响应。 NodeJS 发送空响应

javascript - Emberjs slider 无法按预期工作

javascript - 包含 "&"的 url 不适用于 google pagespeed api

javascript - 为什么我的 AngularJS 动画不起作用?

javascript - Angular 路由: Just to change some variables?

javascript - 动态复选框 onchange 无法使用 jquery 工作?

javascript - 如何避免 $location.url 的 url 解码?

javascript - 在指令中使用 $watch 进行了一个小实验