AngularJS:在控制器中注入时,工厂始终未定义
发布时间:2020-12-17 17:04:07 所属栏目:安全 来源:网络整理
导读:我正在尝试一个AddressBook Angular应用程序的简单示例.我有一个工厂,它返回一个记录数组,它使用List控制器显示在列表视图中 angular.module('abModule',['ngRoute']).factory('AddressBook',function() { var address_book = [ { "id": 1,"first_name": "Jo
我正在尝试一个AddressBook Angular应用程序的简单示例.我有一个工厂,它返回一个记录数组,它使用List控制器显示在列表视图中
angular.module('abModule',['ngRoute']) .factory('AddressBook',function() { var address_book = [ { "id": 1,"first_name": "John","last_name": "Doe","age": 29 },{ "id": 2,"first_name": "Anna","last_name": " Smith","age": 24 },{ "id": 3,"first_name": "Peter","last_name": " Jones","age": 39 } ]; alert('inside factory function'); return { get: function() { return address_book } }; }) .config(function($routeProvider) { $routeProvider .when('/',{ controller:'list_controller',templateUrl:'list.html' }) .when('/add',{ controller:'add_controller',templateUrl:'add.html' }) .otherwise({ redirectTo:'/' }); }) .controller('list_controller',['$scope',function ($scope,AddressBook) { $scope.address_book = AddressBook; }]) .controller('add_controller',AddressBook) { //$scope.entry = {}; $scope.save = function() { AddressBook.set( { "id": $scope.address_book.length +1,"first_name":$scope.entry.firt_name,"last_name":$scope.entry.last_name,"age":$scope.entry.age } ); }; }]); 这里’AddressBook’总是在’list_controller’中未定义.知道我哪里错了吗?任何帮助是极大的赞赏. 解决方法
您没有为您的DI注释AddressBook
.controller('list_controller',AddressBook) { $scope.address_book = AddressBook; }]) 应该: .controller('list_controller','AddressBook',AddressBook) { $scope.address_book = AddressBook; }]) 对于其他控制器也是如此. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |