我不知道发生了什么。我在Angular中有一个控制器,我希望将URL与JSON文件中的item.href
进行比较,然后我想在获得正确的项目之后从我的JSON文件中检索它。
Angular Contorller:
angular.module('app').controller('appCtrl', ['$scope', '$http', '$rootScope', '$location', function ($scope, $http, $rootScope, $location) {
$http.get('Items.json').success(function (data) {
$scope.tmp = data.mainmenu;
$rootScope.location = $location;
$scope.hashPath = "#" + $rootScope.location.path().toString();
var objects = [];
angular.forEach($scope.tmp, function (mainitem) {
console.log(mainitem.title);
objects.push(mainitem);
angular.forEach(mainitem.menu, function (item) {
console.log(item.title);
objects.push(item);
angular.forEach(item.submenu, function (subitem) {
console.log(subitem.title);
objects.push(subitem);
})
})
});
var title = "";
$scope.setTitle = function () {
angular.forEach(objects, function (item) {
if ($scope.hashPath == item.href) {
title = item.title;
}
})
};
});
}]);
JSON
{
"mainmenu": [
{
"id": "main",
"title": "Main Category",
"href": "#",
"menu": [
{
"id": "menu1",
"title": "Menu 1",
"href": "#/menu1"
},
{
"id": "menu2",
"title": "Menu 2",
"href": "javascript:;"
"submenu": [
{
"id": "submenu2_1",
"title": "Submenu 2 1",
"href": "#/submenu2_1"
},
{
"id": "submenu2_2",
"title": "Submenu 2 2",
"href": "#/submenu2_2"
},
{
"id": "submenu2_3",
"title": "Submenu 2 3",
"href": "#/submenu2_3"
}
]
},
{
"id": "menu3",
"title": "Menu 3",
"href": "#/menu3"
},
{
"id": "menu4",
"title": "Menu 4",
"href": "javascript:;"
"submenu": [
{
"id": "submenu4_1",
"title": "Submenu 4 1",
"href": "#/submenu4_1"
},
{
"id": "submenu4_2",
"title": "Submenu 4 2",
"href": "#/submenu4_2"
},
{
"id": "submenu4_3",
"title": "Submenu 4 3",
"href": "#/submenu4_3"
}
]
}
]
}
]
}
问题在于我的控制器中的这一行:
$scope.setTitle = function () {
angular.forEach(objects, function (item) {
if ($scope.hashPath == item.href) {
title = item.title;
}
})
};
我的意思是 - 当我在此函数中设置断点时,它不会进入此函数内部......出了什么问题?
答案 0 :(得分:2)
除非您在视图中调用setTitle()
,否则您实际上从未调用此函数。