0

我是新來的編程在html/JS/AngularJS。 我想實現一個簡單的角度組件,但我不斷收到錯誤。我查看了其他答案,並找不到解決方案,爲什麼這個簡單的實現會在控制檯中創建錯誤(錯誤在標題中提到)。請幫忙。 picture of console out put angular.js:13424錯誤:[ng:areq]參數'fn'不是函數,得到對象

var myApp = angular.module('RingShopApp', []); 
 
function appctrlcontroller($scope) { 
 

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

+0

什麼組合? – olNoy

回答

0

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

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

function appcontroller($scope) { 
    ... 
} 

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

小心添加$注入性,以你的控制器避免縮小的潛在問題。

0

@Sajeetharan在這裏發佈了一個解決問題的答案,但他從評論中刪除了它。 他的回答是,我應該將「.component」更改爲「.directive」,因爲它是angular2和angular的混合。這是編輯的代碼。這似乎很好地工作:

var myApp = angular.module('RingShopApp', []); 
 
function appctrlcontroller($scope) { 
 

 
} 
 
myApp.controller('appctrl', appctrlcontroller) 
 
\t \t \t \t \t \t \t 
 
.directive('ringtabs', function(){ 
 
\t return { 
 
\t templateUrl: 'html/Directives/tabs.html' 
 
\t //controller: myApp.controller('appctrl') 
 
\t }; \t 
 
}); 
 
console.log("ringtabs component");

相關問題