我正在創建truncate指令,並且如果字符數超過10,我將截斷文本字符串。它將顯示「...」。如何在條件滿足的情況下添加CSS類Angular JS
我的目標是編寫一個條件,如果字符小於10,則刪除「...」。如果任何人對我如何完成此任務有任何想法,我會堅持這一點並接受建議。
這裏是我的代碼:
var app = angular.module('myApp', []);
// Controller
app.controller('mainCtrl', function($scope) {
$scope.text = "John Doe Blah blah";
});
// Directive
app.directive('truncate', function() {
function link(scope, element, attrs){
scope.truncate = function(str){
if(str.length > 10) {
return 'truncate'
} else{
return 'notruncate'
}
}
}
// Write a condition to check if the username is < 10 characters to hide the ellipse
return{
restrict: 'A',
scope: {
input: '=',
maxCharacters: '=',
href: '=',
isShowMore: '='
},
template: '<h4 ng-init="limit=true;length=maxCharacters">{{input | limitTo: length}}<a ng-attr-href="#" ng-click="limit=!limit;length=limit?maxCharacters: \'\'">{{isShowMore?"Show More":"..."}}</a></h4>',
link: link
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<html ng-app='myApp'>
<body ng-controller='mainCtrl'>
<div href='true' input='text' is-show-more='false' max-characters='10' truncate=''></div>
</body>
</html>
可以完成同樣的事情沒有角或JavaScript使用文本溢出:省略號財產。 https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow – Ericson578