我遇到了一个问题,我的 Angular 知识太有限而无法弄清楚。我想要一个非 html5 占位符属性。这是我之前在堆栈溢出中发现的一些代码,它可以很好地做到这一点:
// Placeholder for non HTML5 browsers
app.directive("ngPlaceholder", function($log, $timeout) {
var txt;
return {
restrict: "A",
scope: { txt: "@ngPlaceholder" },
link: function(scope, elem, attrs) {
elem.on("focus", function() {
if(elem.val() === scope.txt) {
elem.val("");
}
scope.$apply()
})
elem.on("blur", function() {
if(elem.val() === "") {
elem.val(scope.txt);
}
scope.$apply()
})
// Initialise placeholder
$timeout(function() {
elem.val(scope.txt)
scope.$apply();
})
}
}
})
但是......将它与 ng-model 结合使用:
input(
type="text"
ng-model="card.number"
ng-placeholder="0000-0000-0000-0000")
它消除了双向数据绑定!
继承人: http ://plnkr.co/edit/1AvVOxb5O6P5pU3wIuKv?p=preview
我错过了什么?
更新很多人已经在这里表达了解决这个相当烦人的问题的方法