在Angularjs中更改模型时,模板不会更新

时间:2014-01-22 02:15:30

标签: angularjs data-binding

我不知道为什么当我点击提交按钮$scope.result获取值(由console.log打印出来)但它不会在模板中按{{result}}打印出任何内容{{countDown}} angular.module('mean.system').controller('HeaderController', ['$scope', 'Global', $timeout', '$http', '$location', function ($scope, Global, $timeout, $http, $location) { $scope.findFriend = function() { $scope.result = "submit button is clicked"; console.log($scope.result); //submit button is clicked } $scope.countDown = 10; var timer = setInterval(function(){ $scope.countDown--; $scope.$apply(); }, 1000); }]); 1}}仍然可以正常工作。如何修复?,谢谢

SCRIPT:

<div data-ng-controller="HeaderController">
  <div> {{countDown}} </div>
  <form ng-submit="findFriend()"> 
     <input type="email" ng-model="friendEmail">
     <input type="submit" value="Find">
  </form>
</div>

<section data-ng-controller="HeaderController">
    <div> Confirm: {{result}} </div>
    <div> {{countDown}} </div>
</section>

HTML:

{{1}}

1 个答案:

答案 0 :(得分:0)

这是你的问题,除了之前的评论,你使用的是两个控制器,还有你的初始文件外面有控制器,那么这就超出了范围。

你想要做的就是放在里面。这就是它应该如何与一个显示这适合你的小提琴一起看。

<div ng-controller="MyCtrl">
    <div>{{countDown}}</div>
    <form ng-submit="findFriend()">
        <input type="text" ng-model="friendEmail" />
        <input type="submit" value="Find" />
    </form>
    <div>Confirm: {{result}}</div>
    <div>{{countDown}}</div>
</div>

http://jsfiddle.net/HB7LU/1792/

要注重细节,请务必自行关闭标签,这样可以更好地形成HTML。


为了能够在不同控制器之间传递变量,您可以使用注释中提到的服务来完成,这是一个很好的简单示例:     https://gist.github.com/exclsr/3595424

干杯。