我遇到的问题是我希望文本输入为空,而它有一个具有默认值的已定义ng模型,然后,当输入变脏时,我想要那个特定的ng-model重新定义。例如:
<span ng-init="level='Base'">{{level}}</span>
<input ng-model="level" placeholder="Specify Level">
最理想的情况是,上面的示例会将“Base”作为范围中的默认值,但不会在输入中显示(因此占位符可见),直到输入变为脏,并重新定义了“level”值。我已经尝试过这些方面的东西,但无法实现我想要的东西:
<span ng-init="level='Base'">{{level}}</span>
<input ng-model="noop" ng-change="checkDirty()" name="lvl" id="lvl" placeholder="Specify Level">
// Controller code
$scope.checkDirty = function(){
if ($scope.myform.lvl.$dirty) {
angular.element("#lvl").attr("ng-model", "level")
}
}
谢谢你的时间!
答案 0 :(得分:0)
您不需要更改事件来检查表单是否脏。您可以直接在span元素中包含条件。
{{level ? level : 'Base'}}
<强>演示强>
var app = angular.module('app', []);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="app">
<span>{{level ? level : 'Base'}}</span>
<input ng-model="level" name="lvl" id="lvl" placeholder="Enter level">
</body>
&#13;