没有调用factroy引用的AngularJS控制器

时间:2015-02-21 15:10:49

标签: angularjs asp.net-web-api controller factory

当我将工厂引用(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>

1 个答案:

答案 0 :(得分:0)

我这个愚蠢的错误。我没有在主页面中包含对我工厂的javascript文件的脚本引用。我打算删除这篇文章,但我想离开它以防其他人遇到类似的问题。