angular-selectizeモジュールで AngularJS を使用しています。
必要な要素をページに入力するには、次のようなものを使用します。
index.html
<selectize
ng-repeat="select in selects_data track by $index"
config="selectizeConfig"
options="select.options"
ng-model="selects_models[select.name]">
</selectize>
controller.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
誰かが問題を解決してくれると本当にうれしいです!