AngularJS首先在p标签中显示默认html,但随输入改变

时间:2016-07-27 09:35:59

标签: javascript html angularjs

我有一个p标记和一个文本input。我想首先在p标签中显示默认的html(例如 [[enter text]] )(当页面加载时)但是当用户在输入框中写入一些文本时它将被修改。输入标签将有一个占位符(例如请输入此处),没有默认值。我曾尝试在输入标记中使用ng-model,但它也使输入值等于我不想要的模型。在页面加载时,输入标记值将不同于p标记。

更新:通过这种方式解决了 https://jsfiddle.net/acmnosyf

1 个答案:

答案 0 :(得分:2)

我试图为您解决问题here

我将p代码的模型设置为input的其他模型。

<p>{{text}}</p>
<input ng-model="inputText" ng-change="changed(inputText)" type="text"> 

因此,当输入更改时,将调用changed函数。在您的控制器中,您只需要像这样实现changed函数

app.controller('MyCtrl', function($scope) {
  var text = "myText";
  $scope.text = text;

  $scope.changed = function(input) {
    $scope.text = input;

    // Resset text to default value
    if (input === "") {
      $scope.text = text;
    }
  }
});

希望这会有所帮助。

修改 正如其中一条评论所说,设置p的最优雅方法之一是

<p>{{text ? text : "My text" }}</p>
<input ng-model="text" type="text">