我有一個角度項目,app.js,然後是控制器的main.js。事情是我想創建一個指令,我得到2個不同的錯誤,無論我在app.js或main.js創建它,但無法以任何方式工作。創建指令原因[ng:areq]錯誤
這是我的app.js(無指令還)
var myapp = angular
.module('nombre_proyectoApp', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch',
'ngDialog'
]);
myapp.config(function ($routeProvider,$sceDelegateProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
//templateUrl: '/dms/static/nombre_proyecto/views/main.html',
controller: 'MainCtrl',
controllerAs: 'main'
})
.when('/about', {
templateUrl: 'views/about.html',
//templateUrl: '/dms/static/nombre_proyecto/views/about.html',
controller: 'AboutCtrl',
controllerAs: 'about'
})
.otherwise({
redirectTo: '/'
});
$sceDelegateProvider.resourceUrlWhitelist(['self','http://*.leroymerlin.es/**']);
});
這是我main.js(無指令還)
myapp.controller('MainCtrl', ['$scope','$http','ngDialog','$sce', function ($scope, $http, ngDialog, $sce) {
$scope.Math = window.Math;
$scope.seleccion = 'all';
$scope.productos = [];
$http.get('productos.json').then(function(response){
$scope.productos = response.data;
});
$scope.select = function (s){
$scope.seleccion = s;
};
}]);
現在,這個工作得很好,但是當我添加了指令在main.js這樣
myapp.directive('listado', function(){
return {
restrict: 'E',
compile: function(element, attrs){
var filtro = attrs.filtro || 'all';
var productos = attrs.productos;
var htmlText = '
<ul>
<li class="producto col-md-12" ng-repeat="producto in '+ productos +'" ng-if="(producto.group == '+ filtro +') || ('+ filtro +' == \'all\')">
<div class="col-md-4">
<img src="{{producto.imgUrl}}" alt="foto">
</div>
<div class="col-md-5">
<p class="titulo">{{producto.title}}</p>
<p class="verdeLM"><a href="http://www.leroymerlin.es/fp/{{producto.ref}}">Ref. {{producto.ref}}</a></p>
<p class="gris">{{producto.description}}</p>
</div>
<div class="col-md-3 text-right">
<div class="precio">{{Math.floor(producto.price)}},<sup>{{decimales(producto.price)}} €</sup></div>
<a class="btnVerProd" href="http://www.leroymerlin.es/fp/{{producto.ref}}" target="_blank" ng-click="verProd(producto.ref)">Ver producto</a>
</div>
</li>
</ul>';
element.replaceWith(htmlText);
}
};
});
然後我得到這個錯誤:
個angular.js:13424錯誤:[NG:AREQ]參數 'MainCtrl' 不是一個函數,得到了不確定 http://errors.angularjs.org/1.5.3/ng/areq?p0=MainCtrl&p1=not%20aNaNunction%2C%20got%20undefined
所以,我試圖把在app.js,然後我得到這個其他錯誤:
angular.js:68未被捕獲的錯誤:[$注射器:modulerr]未能實例由於模塊nombre_proyectoApp: 錯誤:[$注射器:NOMOD]模塊 'nombre_proyectoApp' 不可用!您拼錯了模塊名稱或忘記加載模塊名稱。如果註冊模塊確保您指定依賴關係作爲第二個參數。這樣
<listado productos="productos"></listado>
任何幫助,將不勝感激 http://errors.angularjs.org/1.5.3/ $噴油器/ NOMOD?P0 = nombre_proyectoApp
在main.html中我打電話指令..