2015-05-29 40 views
0

我試圖顯示基於品牌的產品,但ng-repeat內的ng-click不起作用。 但ng-click在ng-repeat之外工作正常。 ng-repeat內部有衝突嗎?ng-click不能在ng-repeat內工作

模塊

var myApp = angular.module('myapplication', ['ngRoute', 'ngResource','uiSlider']); 

我的視圖

<a style="cursor:pointer" ng-click="Brandfilters = ''">All Brands</a> 

<div class="list-group-item" ng-repeat="product in products | unique: 'brand'" > 
    <a style="cursor:pointer" ng-click="Brandfilters='{{product.brand}}'">{{product.brand}}</a> 
</div> 

我的控制器

myApp.controller("StoreListCtr", ['$scope', '$http', '$resource', '$location', 
     function($scope, $http, $resource, $location) { 

     $scope.products = Products.query(); 
     $scope.Brandfilters = null; 
     $scope.lower_price = 100; 
     $scope.upper_price = 500; 

     $scope.priceRange = function(products) { 
      return (products['cost'] >= $scope.lower_price 
          && products['cost'] <=$scope.upper_price); 
     }; 
}]) 
+0

它應該充當產品在索引頁上顯示的過濾器... –

+0

如果我的解決方案無法正常工作,請嘗試在重新生成時重現您的錯誤。以這種方式幫助你會更容易。 – Okazari

+0

你可以嘗試用ng:repeat(product.brand)代替ng-repeat,並告訴我們它的行爲如何? – Okazari

回答

0

剛剛嘗試

<div class="list-group-item" ng-repeat="product in products | unique: 'brand'" > 
    <a style="cursor:pointer" ng-click="Brandfilters ='product.brand'">{{product.brand}}</a> 
</div> 
+0

無法正常工作....... –

+0

您的ng-repeat工作是否正常? – Vineet

+0

不,它不工作,它顯示了一些像「Microsoft」 –

0

在NG-重複的代碼評估代碼,這樣你就不必使用{{}}。

<div class="list-group-item" ng-repeat="product in products | unique: 'brand'" > 
    <a style="cursor:pointer" ng-click="Brandfilters = product.brand">{{product.brand}}</a> 
</div> 
+0

嗨馬蒂厄貝爾坦,我已經檢查過,但它不工作... –

0

工作的例子 - http://plnkr.co/edit/DnTE05Vpo6erMgfpQQjo?p=preview

試試這個 -

替換 -

<a style="cursor:pointer" ng-click="Brandfilters='{{product.brand}}'">{{product.brand}}</a> 

隨着

<a style="cursor:pointer" ng-click="setBrand(product.brand)">{{product.brand}}</a> 

並在控制器

$scope.setBrand = function(brandName) { 
     $scope.Brandfilters = brandName; 
} 
+0

這是爲你工作嗎? – User2

+0

不,它不工作.. –

+0

它爲我工作。請檢查 - http://plnkr.co/edit/DnTE05Vpo6erMgfpQQjo?p=preview – User2

0

您可能需要在模塊中注入正確的指令,可能是'ui.directives',或者它可能是ui.utils

var myApp = angular.module('myapplication', 
           ['ngRoute', 'ngResource','uiSlider', 'ui.directives']); 

在看文檔,您可能需要ui.utils ...

var myApp = angular.module('myapplication', 
           ['ngRoute', 'ngResource','uiSlider', 'ui.utils']); 

GitHub資源。