2
我正在嘗試在我的輸入元素上實現過濾。 我想對type =「text」字段的輸入進行過濾。例如,如果模型包含的可用字符多於我想要更改輸入值的字符數。 我創建了jsfiddle 我有指令,動態生成html模板,它包含輸入字段。如何在AngularJS中過濾輸入值
var app = angular.module('app', [])
.controller('ctrlr', function($scope){
$scope.myModel = "test";
$scope.availableCharacters = 5;
$scope.$watch('myModel', function(newValue, oldValue){
if(!newValue){
return;
}
if(newValue.length > 5){
$scope.cutString();
}
});
$scope.cutString = function(){
var length = $scope.myModel.length;
var string = $scope.myModel.slice(0, $scope.availableCharacters);
var countStars = length - string.length;
$scope.myModel = $scope.createStars(string, countStars);
}
$scope.createStars = function(string, countStars){
for(var i = 1; i <= countStars; i++){
string = string+'*';
}
return string;
}
})
.directive('awesome' , function(){
return {
restrict:'E',
template:'<input type="text" ng-model="myModel" ng-value="myModel | filter:my" />'
}
})
是否有可能將我的代碼移動到過濾器函數?我有很多業務邏輯,我不想將我的代碼保存在控制器中,因爲它是可重用的指令。
感謝您的建議。我會考慮的。 –
我肯定會選擇ngModelController,因爲您使用的是formfields,並且不會在任何地方複製控制器代碼,以便將特定輸入字段放到您的應用程序中。我有一個類似的問題,輸入字段的實時i18n(無頁面刷新)數字值,當我從德語切換到英語語言環境時,必須切換數字的組和小數點分隔符。正如U10提到檢查ngModel。 http://stackoverflow.com/a/15346236/1554767 該鏈接打開我的心靈,又領我到ngModel的地獄。 –