我将 AngularJS 与angular-selectize模块一起使用。
要使用我需要的元素填充页面,我使用如下内容:
索引.html
<selectize
ng-repeat="select in selects_data track by $index"
config="selectizeConfig"
options="select.options"
ng-model="selects_models[select.name]">
</selectize>
控制器.js
$scope.update_data = function(){
//I'm using AngularJS resource to get the JSON data from the server
$scope.selects_data = StatesTableControl.get({'path': $scope.element.path},
function(data){
//Success
angular.forEach(data, function(item){
$scope.selects_models[item.name] = item.current_id
});
}, function(error){
//Error
}
);
};
$scope.update_data();
$interval($scope.update_data, 3000);
无论我使用track by $index
,还是根本不使用,每次我用从服务器获取的数据更新数组时track by select.name
,所有元素都会完全重绘,即使更新后数组内容相同。<selectize></selectize>
selects_data
我还没有找到任何方法来自己解决它。当我在内部或其他元素中使用它时,我不明白为什么track by
对同样的事情有帮助。div
如果有人可以帮助解决这个问题,我会非常高兴!