2014-11-10 5 views
0

에 jQuery를 추가?내가 같은 HTML을 AngularJS와 컨트롤러

var maxLength = 15; 
$('#example > option').text(function(i, text) { 
    if (text.length > maxLength) { 
     return text.substr(0, maxLength) + '...'; 
    } 
}); 
+1

는 지시를위한 작업 같은 소리! https://docs.angularjs.org/guide/directive. 그러나, 당신은 정말로 일을하는 각기 다른 방법을 포용하려고 노력해야하며 다른 옵션이 없다면 jquery로 되돌아 가지 않는 것이 좋습니다. jquery가없는 각도 함수가있는 이유가 있습니다. – Claies

답변

1

당신은 정말 일을하고자하는 방법 AngularJS와을 위반하는, 그런 식으로 그 일을하지 말아야하며, 당신의 코드를 보면 다른 AngularJS와 개발자를 좌절 것입니다.

대신 옵션 목록을 컨트롤러의 범위 속성으로 선언하고 텍스트를 수정하여 필요한 길이로 자릅니다.

마크 업 :

<select id="example" ng-options="option.value as option.text for option in options"> 

컨트롤러 코드 :

var maxLength = 15; 
$scope.options = ['Short', 'Oh dear, this option has really long text :('].map(function (text, i) { 
    return { 
    value: i + 1, 
    text: text.length <= maxLength ? text : text.substring(0, maxLength) + '...' 
    }; 
}); 
+0

고마워. 나는 정말 새로운 각도 다. [ '짧다', '오 이런,이 옵션은 정말 긴 텍스트를 가지고 있습니다 :' '] 옵션에서 값을 동적으로 전달할 수 있습니까? –

+0

나는 당신이 옵션을 얻는 위치에 따라 다르다. 내가 사용했던 하드 코드 된 배열 대신, 내가 말하고자하는 문자열의 배열에 접근 할 수있는 곳이라면 내가 언급 한 컨트롤러 코드를 넣는다. – GregL