javascript - 为什么在 Angular 中,当我们不分配函数时,作用域属性的变化不会动态地反射(reflect)回 View ?

标签 javascript angularjs

html 是:

<body ng-app='myModule' ng-controller='myController'>
  <div class="container">
    <br>

    <input class='form-control' type='number' min='0' ng-model='num'>
    <h1>{{result}}</h1>

  </div>

</body>

脚本文件:

angular.module('myModule',[]).controller('myController',function($scope){

    $scope.num=5;
    $scope.result=$scope.num*2;

});

结果第一次只会产生10,然后对于输入的任何变化它都会保持不变

我认为由于num属性的变化,预计结果会随着输入的变化而变化。

我知道如果我分配一个如下的函数就会起作用:

$scope.result=function(){
        return $scope.num*2;
    }

<h1>{{result()}}</h1>

但是为什么它没有功能就不起作用?

最佳答案

因为当您在 Controller 中执行 $scope.result=$scope.num*2; 时,它只会被触发一次。如果您希望它在每个摘要周期(每当有变化时)被触发,您需要使用像您一样的函数,或者执行

 <h1>{{num * 2}}</h1>

关于javascript - 为什么在 Angular 中,当我们不分配函数时,作用域属性的变化不会动态地反射(reflect)回 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36086567/

相关文章:

javascript - 将第二个范围传递给指令

javascript - "Controller as"不适用于 ng-repeat

javascript - Java:Javascript 函数不会在 Wicket 按钮的 onclick 事件上触发

javascript - 通过 Angular http 请求发布文件

javascript - HTML onKeyDown-事件调用函数和按钮点击

javascript - AngularJS 类型错误 : Cannot call method 'apply' of undefined

javascript - 按字母顺序停止 AngularJS ng-repeat 渲染

javascript - UIWebView 不正确的内容高度

javascript - igdb.com API | React Axios 请求被 CORS 策略阻止;请求的资源上不存在 'Access-Control-Allow-Origin' header

angularjs - 将现有文件或目录导入intellij idea项目