簡體   English   中英

angular.js:13424錯誤:[ng:areq]參數'fn'不是一個函數,得到了對象

[英]angular.js:13424 Error: [ng:areq] Argument 'fn' is not a function, got Object

我是html / JS / AngularJS編程的新手。 我正在嘗試實現一個簡單的角度組件,但我不斷出錯。 我查看了其他答案,但找不到解決方案,為什么這個簡單的實現會在控制台中創建錯誤(標題中提到了錯誤)。 請幫忙。 控制台輸出的圖片

 var myApp = angular.module('RingShopApp', []); function appctrlcontroller($scope) { } myApp.controller('appctrl', appctrlcontroller); console.log("appctrl done"); myApp.component('ringtabs', { template: "<p>sdfsdfsdfsdfsdfdf</p>", // templateUrl: 'html/Directives/tabs.html', controller: myApp.controller('appctrl') }); console.log("ringtabs component"); 
  <!DOCTYPE html> <html > <head> </head> <body ng-app="RingShopApp"> <ringtabs></ringtabs> <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.js'></script> <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.min.js'></script> <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-route.min.js'></script> <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-aria.min.js'></script> <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-messages.min.js'></script> <script src="js/index.js"></script> </body> </html> 

您應該直接向組件提供控制器功能,而不是通過角度控制器的吸氣劑:

var myApp = angular.module('RingShopApp', []);
myApp.controller('appcontroller', appcontroller);
myApp.component('ringtabs', {
    template: "<p>sdfsdfsdfsdfsdfdf</p>",
    controller: 'appcontroller'
});

function appcontroller($scope) {
    ...
}

appcontroller.$inject = ['$scope'];

請小心地將$ inject屬性添加到您的控制器,以避免縮小的潛在問題。

@Sajeetharan在這里發布了一個可以解決問題的答案,但是他從評論中刪除了它。 他的回答是,我應該將“ .component”更改為“ .directive”,因為它是angular2和angular的混合體。 這是已編輯的代碼。 似乎工作正常:

 var myApp = angular.module('RingShopApp', []); function appctrlcontroller($scope) { } myApp.controller('appctrl', appctrlcontroller) .directive('ringtabs', function(){ return { templateUrl: 'html/Directives/tabs.html' //controller: myApp.controller('appctrl') }; }); console.log("ringtabs component"); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM