AngularJS $ parse TypeError:object不是函数

时间:2015-03-06 06:00:14

标签: angularjs

我已将我的应用程序剥离到裸骨,但在使用$ parse时我一直收到此错误: TypeError:object不是函数

有什么问题?我错过了什么?

似乎在这个掠夺者中工作得很好:http://plnkr.co/edit/WrXv9hT5YA0xYcLLvyDb
可以解析与其他模块冲突吗?

Weirder仍然 - 它实际上确实改变了$ scope.modal.on的值!即使它似乎死在手......

/* Controllers */

//var MyApp = angular.module('MyApp', ['ngSanitize', 'ui.bootstrap', 'ui.sortable']);
var MyApp = angular.module('MyApp', ['ngSanitize', 'ui.bootstrap']);


MyApp.controller('MyController', ['$scope', '$http', '$modal', '$parse', function($scope, $http, $parse, $modal, $log) {



    $scope.modal = { 
        open    : false,
        tplfile : null,
        toggle  : function(){ 
            this.open = !this.open; 
            if(this.open) angular.element('body').addClass('modal-open');
            else          angular.element('body').removeClass('modal-open');
        }   
    };

        var modal = $parse('modal.open');
        modal.assign($scope, true);

}]);

2 个答案:

答案 0 :(得分:3)

您以不正确的顺序传入了依赖项。函数的依赖项必须与数组中的顺序完全匹配。

MyApp.controller('MyController', 
['$scope', '$http', '$modal', '$parse', function
($scope, $http, $parse, $modal, $log) {

如果您在控制器声明中交换$parse$modal,您的错误就会消失。此外,您缺少$log,如果您尝试使用该依赖项,您也会收到错误。

答案 1 :(得分:2)

['$scope', '$http', '$modal', '$parse', function($scope, $http, $parse, $modal,

$parse$modal互换。

请更正订单,它将起作用:)

应该是

MyApp.controller('MyController', ['$scope', '$http', '$modal', '$parse', '$log', function($scope, $http,  $modal, $parse, $log) {