Javascript 在角度工厂本身中使用过滤器进行迭代
我的问题是,我使用一个带有2个控制器的工厂,第一个返回给我一个完整的数组,第二个只想返回一个基于过滤表达式的项。我从url获取最后两个参数,遍历数组并检查哪个数组项具有特定属性的值,然后仅返回该元素及其所有属性和值。到目前为止还没有问题,但是如果我想在工厂内部的声明数组本身的返回树中进行过滤,那么如何在角度上进行过滤呢? 为了获得帮助,我附加了JSFIDLE链接,您可以在html部分找到一些解释: 这里是我的工厂和控制器到目前为止,如果你不想检查链接Javascript 在角度工厂本身中使用过滤器进行迭代,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我的问题是,我使用一个带有2个控制器的工厂,第一个返回给我一个完整的数组,第二个只想返回一个基于过滤表达式的项。我从url获取最后两个参数,遍历数组并检查哪个数组项具有特定属性的值,然后仅返回该元素及其所有属性和值。到目前为止还没有问题,但是如果我想在工厂内部的声明数组本身的返回树中进行过滤,那么如何在角度上进行过滤呢? 为了获得帮助,我附加了JSFIDLE链接,您可以在html部分找到一些解释: 这里是我的工厂和控制器到目前为止,如果你不想检查链接 portApp.factory("work
portApp.factory("workFactory", function() {
var selected = [];
var works = [
{
Title: "Sprite",
subTitle: "",
Link: "sprite",
Thumbnail: "img/portfolio02.png",
Image: "img/ismont.png"
},
{
Title: "Pepsi",
subTitle: "Kristályvíz",
Link: "pepsi",
Thumbnail: "img/portfolio03.png",
Image: "img/sanofimont.png"
}
];
return {
list: function() {
return works;
},
selected: function() {
return works[0]; // probably selected[]
}
};
});
portApp.controller("listController", ["$scope", "workFactory",
function($scope, workFactory) {
$scope.allWorks = workFactory.list();
}
]);
portApp.controller("itemController", ["$scope", "workFactory", "$stateParams",
function($scope, workFactory, $stateParams) {
var detPath = $stateParams.itemLink;
//$scope.selectedWork = workFactory.selected(detPath);
}
]);
所选参数应为具有一个参数的函数:
return {
list: function() {
return works;
},
selected: function(detPath) {
//Filter based on the detPath
selected = works.filter(function(work) {
return work.Link == detPath;
});
return selected;
}
};
然后您可以在控制器中调用它:
portApp.controller("itemController", ["$scope", "workFactory", "$stateParams",
function($scope, workFactory, $stateParams) {
var detPath = $stateParams.itemLink;
$scope.selectedWork = workFactory.selected(detPath);
}
]);
哦,谢谢你,帮了我很大的忙:只有一个问题。。在我返回$scope.selectedWork后。。在我看来,如何访问它?{{selectedWork.Title}}应该足够了吗?只是因为它现在没有以这种方式为我带来任何东西。selectedWork现在是一个数组。如果只需要一个对象,则获取控制器中数组的第一个对象:$scope.selectedWork=workFactory.selectedetpath[0];与此同时,我设法找到了答案:并用$scope检查了内容。$watch'$viewContentLoaded',函数{…,它返回了我想要看到的数据:不幸的是,在我的视图中,没有任何呈现:s这是视图:{{{selectedWork.Title}{{selectedWork.subTitle}}可能键入了什么?