下面是一种方法,你可以通过指令来做到这一点。我在这里做了很多假设,这不是生产值得的代码,但它应该给你一个开始的基础。基本上,您将该对象传递给该指令,然后观察该对象上的属性以进行更改。当属性更改时,您可以拆分空格字符并在对象上填写适当的值。既然这是一个指令,你可以在任何地方使用它。
JS
angular.module('app', [])
.controller('ctrl', function($scope) {
$scope.feeData = {
fee: 0,
feeCurrency: 'N/A',
value: ''
};
})
.directive('feeDirective', function() {
return {
restrict: 'A',
scope: {
feeData: '='
},
link: function(scope, element, attrs) {
scope.$watch('feeData.value', function(newValue, oldValue) {
console.log(newValue);
var data = newValue.split(' ');
if (data.length === 2) {
console.log(data);
scope.feeData.fee = data[0];
scope.feeData.feeCurrency = data[1];
}
}, true);
}
}
});
HTML
<div ng-app="app" ng-controller="ctrl">
<div>
<input type="text" ng-model="feeData.value" fee-directive fee-data="feeData">
</div>
<div>
Value: {{feeData.value}}
<br/> Fee: {{feeData.fee}}
<br/> Currency: {{feeData.feeCurrency}}
</div>
</div>
Working JSFiddle示出上面的代码。
来源
2016-07-07 16:36:10
Lex
它总是会是'Fee' =>'fee'和'feeCurrency'吗? – Lex
只是一个例子,有几个不同名称的字段,用户必须输入100美元的格式。是的,总是将货币添加到字段名称费用=>费用和费用Currency.please帮助 –