这就是我尝试过的以及我想要做的事情:
HTML:
<update-field name="test" cap></update-field>
JS:
scope: {
name: "@",
cap: "@"
},
controller: function() {
},
link: function(scope, elem, attr, ctrl) {
scope.submit = function($event, object) {
query.first({
success: function(object) {
if (scope.cap) {
// do stuff
但如果我在HTML中包含scope.cap
(我正在尝试完成此任务),true
不会返回cap
。这样做的正确方法是什么?
答案 0 :(得分:5)
链接功能已有attr
参数。此attr
包含添加到元素的所有属性。
因此,在链接功能内部,您可以检查
if (attr.cap != null) {
// Do stuff
}
答案 1 :(得分:1)
您可以使用in
关键字检查属性是否在对象中。如果您添加属性attr
,cap
应该有一个属性cap
,如果没有,那么该属性将不会出现。
'cap' in attr // <--- true or false
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in