数据绑定仅在onfocus / blur上更新

时间:2016-12-15 02:14:44

标签: angularjs

我有这个奇怪的,奇怪的问题。

  1. 我将public IEnumerable<NavigationProperty> GetParentNavigationProperties(EntityType type) { return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity != RelationshipMultiplicity.Many); } 应用于我的输入
  2. 我点击了ng-model
  3. 我设置控制器的属性以匹配Get IP
  4. 输入应更新
  5. 这就是我们应该发生的事情。但是,我有一个奇怪的问题,数据绑定将不会更新,直到我取消对焦/模糊输入。

    https://jsfiddle.net/941d7qat/

    ng-model

    我已经和AngularJS合作了几个月(尽管使用TypeScript),我以前从未体验过这一点。我可以看到

1 个答案:

答案 0 :(得分:4)

有多个问题

  1. 不要在控制器中执行dom,angular已经提供了添加click事件和执行ajax的方法。所以不要混用jQuery和角度代码。
  2. 在您的代码中,范围未在摘要周期中更新,这就是输入值未更新的原因
  3. 所以

    var app = angular.module('app', []);
    app.controller('Controller', ['$http',
      function($http) {
        this.ip = "";
    
        this.getIP = () => {
          $http.get('https://api.ipify.org/?format=json').success((response) => {
            this.ip = response.ip;
          })
        }
    
      }
    ]);
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
    <div ng-app="app" ng-controller="Controller as vm">
      <input type="text" ng-model="vm.ip" id="ip" />
      <button id="getIP" ng-click="vm.getIP()">Get IP</button>
      <br />
      <p>TEST: {{vm.ip}}</p>
    </div>