【发布时间】:2023-03-04 14:00:01
【问题描述】:
我有这个工厂
DatosFactory.js
(function() {
'use strict';
angular.module('InmoManager')
.factory('DatosFactory', function($http, $location) {
var datos = {
propiedadesFiltradas: []
}
...
datos.getPropiedadesFiltradas = function(){
return datos.propiedadesFiltradas;
}
datos.setPropiedadesFiltradas = function(data){
datos.propiedadesFiltradas.length = 0;
datos.propiedadesFiltradas.push(data);
}
return datos;
})
})();
这个控制器
SidebarController.js
(function() {
'use strict';
angular.module('InmoManager')
.controller('SidebarController', function($http, $scope, DatosFactory) {
var sidebarCtrl = this;
sidebarCtrl.toggleSidebar = function(){
$('#wrapper').toggleClass('toggled');
}
sidebarCtrl.propiedades = DatosFactory.getPropiedadesFiltradas();
});
})();
完成这项工作
pageSidebar.html
<li class="item" ng-repeat="propiedad in sidebarCtrl.propiedades[0] | orderBy:'titulo'">
这很好用!但是,我想改变它:
ng-repeat="propiedad in sidebarCtrl.propiedades[0]"
到
ng-repeat="propiedad in sidebarCtrl.propiedades"
还有这个
datos.setPropiedadesFiltradas = function(data){
datos.propiedadesFiltradas.length = 0;
datos.propiedadesFiltradas.push(data);
}
到
datos.setPropiedadesFiltradas = function(data){
datos.propiedadesFiltradas = data;
}
但是当我这样做时,变量 sidebarCtrl.propiedades 未定义(当我调用 datos.setPropiedadesFiltradas() 时不会更新
【问题讨论】:
-
你试过 datos.propiedadesFiltradas = [] 然后 datos.propiedadesFiltradas.push(data);
-
是的,由于 dfsq 的回答而没有工作!
标签: javascript angularjs