2013-10-08 63 views
0

我是AngularJS的新手,試圖使用嵌套指令。我有一個具有以下嵌套指令將無法正常工作

<product-list></product-list>

這個指令有一個模板,這是目前在另一個文件中的家居佈置。它有這樣的

<div class="products"> <product prod-id="{{product.id}}" ng-repeat="product in products"></product> </div>

product-list指令編譯它不能夠理解product.id在表達我面臨的問題是內容。它給了我這樣

Error: Syntax Error: Token 'product.id' is unexpected, expecting [:] at column 3 of the expression [{{product.id}}] starting at [product.id}}].

一些錯誤指令被定義爲

app.directive('productList', function($compile) { 
return { 
    restrict: 'AE', 
    replace: true, 
    controller: 'ProductListCtrl', 
    templateUrl: base_url + 'partials/directives/product-list.html' 
}; 
}); 

app.directive('product', function() { 
return { 
    restrict: 'AE', 
    controller: 'ProductCtrl', 
    templateUrl: base_url + 'partials/directives/product.html', 
    scope: { 
     prodId: '=prodId' 
    }, 
    link: function ($scope, element, attrs) { 
     var num = $scope.$eval(attrs.prodId); 
     if(!isNaN(parseInt(num))){ 
      $scope.prodId = num; 
     } 
    } 
}; 
}); 

更新:新增控制器指令

myApp.controller("ProductListCtrl", ['$scope', 'ProductModel', '$stateParams', '$location', function($scope, ProductModel, $stateParams, $location) { 
$scope.products = {}; 

//Fetch the products if we have some category for a given state 
if(typeof $stateParams.categoryId != 'undefined' && typeof $stateParams.prodId == 'undefined'){   
    //Fetch products for selected category and page 
    ProductModel.getProductsByCategory($stateParams.categoryId, function(products){ 
     $scope.products = products; 
    }); 
} 

}]); 

請指導我在做什麼錯或缺少任何東西。

+0

please pos你的控制器。並且可以很好地在Plunker或Fiddle中顯示你的代碼 –

+0

Thansk @MaximShoustin快速響應......在plunker中,我會寫很多東西......就像'products'來自webservice。但如果有幫助,讓我分享一下'controller' – makki

回答

0

奇怪的事情發生了不知道,如果它的正確的方式,但它爲我工作:)

我用

<product prod-id="product.id" ng-repeat="product in products"></product>

,而不是

<product prod-id="{{product.id}}" ng-repeat="product in products"></product>

,它加工

相關問題