2016-04-12 95 views
0

我有一個角度項目,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)}} &euro;</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中我打電話指令..

回答

0

固定...在每一個錯誤的頂部,我有一個非法令牌,使一切都出錯。

相關問題