2013-11-24 3 views
3

У меня есть ng-repeat, который выводит число <p>. Я хотел бы усечь текст и добавить кнопку «Читать дальше», которая расширяется при нажатии на нее.Угловой JS текст усечения и добавление читать далее

Это то, что я до сих пор:

//NG-repeat 
<div class="col-xs-4 mbm" ng-repeat="wine in wines"> 
    <p readMore> {{wine.copy|truncate: textLength }} 
     <a ng-click="changeLength()" class="color3"><strong>More</strong></a> 
    </p> 
</div> 

//NG-click 
$scope.changeLength = function() { 
    $scope.textLength = 9999; 
} 

У меня есть пользовательская директива, которая способна укоротить длину строки. Но при попытке изменить длину текста через и ng-click я нахожу все элементы в ng-repeat изменены.

Возможно ли изменить один элемент ng-repeat?

ответ

7

Target wine для ng-click:

<p readMore> {{wine.copy|truncate: wine.textLength }} 
    <a ng-click="changeLength(wine)" class="color3"><strong>More</strong></a> 
</p> 

И тогда только усечь релевантный текст:

$scope.changeLength = function(wine) { 
    wine.textLength = 9999; 
} 
+0

Большое спасибо Дэвин Из интереса, как это угловатый знать, какой «вино», чтобы осуществить? – MichaelBell

+1

, если вы посмотрите на сгенерированную разметку, вы увидите, что ng-repeat копируется на каждый повторный элемент. Итак, для каждого вина есть новая область. –

+0

спасибо .. его полезно ............. –

Смежные вопросы