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");

相关问题