我已将我的应用程序剥离到裸骨,但在使用$ 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);
}]);
答案 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) {