当我将工厂引用(homeFactory)添加到控制器的函数构造函数时,我似乎无法使用简单的控制器。如果我删除工厂参考,控制器工作。此外,通过控制器中的引用,当我断开控制器时,控制器甚至不会被调用,因此它似乎不会出现工厂的错误。视图上的值显示为{{account}},花括号和全部。基本上,工厂正在调用webapi控制器来获取当前用户的活动目录名称。
控制器(没有工作):
app.controller('HomeController', function ($scope, homeFactory) {
$scope.message = 'This is a test Angular JS App';
// get the account info from a webapi controller
$scope.getAccount = function () {
homeFactory.getAccount()
.success(function (data) {
$scope.status = '';
$scope.account = data;
})
.error(function (error) {
$scope.status = 'Unable to get user account: ' + error;
});
};
});
控制器(工作):
app.controller('HomeController', function ($scope) {
$scope.message = 'This is a test Angular JS App';
// pass a test value
$scope.account = 'Bob Jones'
});
厂:
app.factory('homeFactory', function ($http) {
var baseAddress = "../api/";
var factory = {};
// baseAddress and url are based on the
// call the webapi controller
factory.getAccount = function () {
url = baseAddress + "home/account";
return $http.get(url);
};
return factory;
});
路由模式:
var app = angular.module('myApp', ['ngRoute']);
app.config(function ($routeProvider) {
$routeProvider
.when('/', {
controller: 'HomeController',
templateUrl: 'Partials/ViewStart.html'
})
.when('/view-start', {
controller: 'HomeController',
templateUrl: 'Partials/ViewStart.html'
})
.otherwise({ redirectTo: '/' });
});
ViewStart视图:
<div class="container">
<h4>This is the start view</h4>
<div style="color: #000; font-size: .85em;">{{ account }}</div>
<input type="text" data-ng-model="account" />
</div>
答案 0 :(得分:0)
我这个愚蠢的错误。我没有在主页面中包含对我工厂的javascript文件的脚本引用。我打算删除这篇文章,但我想离开它以防其他人遇到类似的问题。