改变我有一个p
标签和文字input
。我想显示默认的HTML(如[输入文字])在第一p标签(当页面加载),但是当用户写在输入框中输入一些文字会被修改。输入标签将有一个占位符(例如请在这里输入),没有默认值。我试图在输入标签中使用ng-model
,但它也使输入的值等于我不想要的模型。在页面加载时,输入标签值将与p标签不同。AngularJS显示p标签第一默认HTML,但是有输入
更新:通过这种方式 https://jsfiddle.net/acmnosyf
改变我有一个p
标签和文字input
。我想显示默认的HTML(如[输入文字])在第一p标签(当页面加载),但是当用户写在输入框中输入一些文字会被修改。输入标签将有一个占位符(例如请在这里输入),没有默认值。我试图在输入标签中使用ng-model
,但它也使输入的值等于我不想要的模型。在页面加载时,输入标签值将与p标签不同。AngularJS显示p标签第一默认HTML,但是有输入
更新:通过这种方式 https://jsfiddle.net/acmnosyf
解决我试图做一个例子给你的问题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">
其中'$ scope.variable '为'p'标签的模型更新。 –
是的没错,但在控制器中使用jQuery并不是完成这些任务的角色。另一种方法是纠正处理控制器所做事情的指令,但我认为这是实现他想要的事情的最简单方法。 – k4l4m
是的,没错。我只是表现出另一种方式。 –
请在关键了警钟方法或使用jQuery添加代码 –