我试图从ng-init内容中检索角度表达式,但它似乎不起作用且ng-model为null。这是我的代码。
<input type="text" class="form-control" ng-model="user.role"
ng-init="user.role={{user.lastname}}-{{state | limitTo:2}}-{{ city| limitTo:2}}"
disabled>
注意:从下拉列表中选择州和城市,我只想采取前2个字符。
当我删除{{}}时,它没有按预期工作,因为我只获得了所有表达式的前2个字符。 我应该拥有什么: Turner-US-NY ,但我得到的是: Tu
任何有效的解决方案?感谢
答案 0 :(得分:0)
将所有评论合并到一个答案中:
ng-change
重新计算user.role
。 ng-init
将无法满足您的需求。所以,最终的结果是这样的:
<select ng-model="state" ng-options="..."
ng-change="recalcUserRole()">
<select ng-model="city" ng-options="..."
ng-change="recalcUserRole()">
<input ng-model="user.role">
$scope.recalcUserRole = function(){
$scope.user.role = $scope.user.lastname + '-'
+ $scope.state.substring(0,2) + '-'
+ $scope.city.substring(0,2);
}
如果您坚持在视图中使用表达式,那么可以这样做:
<select ng-model="state" ng-options="..."
ng-change="user.role = user.lastname+'-'+state.substring(0,2)+'-'+city.substring(0,2)">