使用ng-model时清空占位符

时间:2016-03-29 08:46:45

标签: angularjs angularjs-scope placeholder angular-ngmodel

我想创建一个let numberOfItems = CGFloat(tabBar.items!.count) let tabBarItemSize = CGSize(width: tabBar.frame.width / numberOfItems, height: tabBar.frame.height + 15) tabBar.selectionIndicatorImage = UIImage.imageWithColor(UIColor(netHex:0xe00628), size: tabBarItemSize).resizableImageWithCapInsets(UIEdgeInsetsZero) 将其链接到Scope中的变量。但我不希望text input显示任何内容。但是,该变量的范围内容仍在继续显示。为什么呢?

placeholder
var app = angular.module('example', []);

app.controller('MainCtrl', function($scope) {
  $scope.hello = 'hello';
});

4 个答案:

答案 0 :(得分:0)

因为您将输入框的值绑定到变量' hello'存在于您的范围内,它也具有值' hello'。占位符与它无关,您看到的文本是输入框的值。要清除输入框,请将范围变量设置为空字符串。

答案 1 :(得分:0)

您的范围内有一个变量,名为hello。您有一个<input>元素绑定到同一个变量。不可避免地,元素将具有该变量的相同值。

正如我从您的评论中理解的那样,您希望输入元素不被绑定到该变量。在这种情况下,有几种选择。例如,在您的范围内有一个单独的变量。

然后,只有在输入发生变化时才能使用ngChange更新第一个变量,从而保持其初始值。

&#13;
&#13;
var app = angular.module('example', []);

app.controller('MainCtrl', function($scope) {
  $scope.hello = 'hello';
  $scope.field = '';
  $scope.change = function() {
    $scope.hello = $scope.field;
  };
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body  ng-app="example" ng-controller="MainCtrl">
    <input type="text" ng-model="hello" ng-change="change()">
</body>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用https://github.com/angular/angular.js/issues/5025

上详述的ngAttr
<input type="text" ng-model="inputText" ng-attr-placeholder="{{somePlaceholder}}" />

问题:this post

基于{{3}}。

答案 3 :(得分:-1)

$scope.hello = ''或者甚至不初始化,它将通过输入标记进行初始化,您可以直接使用它。

var app = angular.module('example', []);

app.controller('MainCtrl', function($scope) {
  $scope.hello = '';
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body  ng-app="example" ng-controller="MainCtrl">
    <input type="text" ng-model="hello" placeholder="">
</body>