我是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;
});
}
}]);
請指導我在做什麼錯或缺少任何東西。
please pos你的控制器。並且可以很好地在Plunker或Fiddle中顯示你的代碼 –
Thansk @MaximShoustin快速響應......在plunker中,我會寫很多東西......就像'products'來自webservice。但如果有幫助,讓我分享一下'controller' – makki