Ili*_*ski 7 data-binding angularjs
Angular中更好的东西 - 绑定到变量或函数.特别是:
两个选项的示例:
<!-- With function -->
<button ng-disabled="noDataFoo()">Add</button>
<!-- With variable -->
<button ng-disabled="noDataFlag">Add</button>
支持控制器:
app.controller('sample', function($scope, $http) {
    $scope.noDataFlag = true;
    $scope.noDataFoo = function () {
        return !$scope.data;
    };
    $http('/api/getdata').success(function(data) {
        $scope.data = data;
        $scope.noDataFlag = false;
    };
});
我做了一些测试,统计了不同情况下该函数被调用的次数。它发生时,该函数被调用的次数与它具有绑定的次数有关,有时是次数的两倍,并且它似乎在每次外部活动之后发生,例如页面重新加载或按钮单击或 AJAX 调用。
简而言之,如果您在 HTML 中使用了<button ng-disabled="noDataFoo()">then {{noDataFoo()}},则该函数将在页面加载时被调用 4 次,如果某些$http服务带来数据,则将调用另外 2 或 4 次,如果单击其他某个按钮,则将调用另外 2 或 4 次。根据实验,如果不改变则为 2 noDataFoo,如果改变则为 4。顺便说一句,这同样适用于点击另一个控制器。
我的结论是:绑定快速函数就可以了。对于较长的绑定,最好保持较小的绑定数量。对于更长的时间,更明智的做法是缓存结果并处理“手动”缓存更新。
| 归档时间: | 
 | 
| 查看次数: | 1352 次 | 
| 最近记录: |