Javascript Angular:表达式传递到具有隔离作用域的自定义指令时出现标记错误
(消息、代码等稍作修改以解释问题) 错误:Javascript Angular:表达式传递到具有隔离作用域的自定义指令时出现标记错误,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,(消息、代码等稍作修改以解释问题) 错误: Syntax Error: Token 'promiseObject' is unexpected, expecting [:] at column 3 of the expression [{{promiseObject?promiseObject.activeDEM:0}}] starting at [promiseObject?promiseObject.activeDEM:0}}]. 以下代码解释了该问题: 使用的HTML: <coun
Syntax Error: Token 'promiseObject' is unexpected, expecting [:] at column 3 of the expression [{{promiseObject?promiseObject.activeDEM:0}}] starting at [promiseObject?promiseObject.activeDEM:0}}].
以下代码解释了该问题:
使用的HTML:
<count-up id="feafdcds" duration="1" end-val='{{promiseObject?promiseObject.value:0}}' class="number" ></count-up>
不能使用有角度的双向绑定
endVal: '='
有棱角的表情
{{promiseObject?promiseObject.value:0}}
使用双向绑定时,如果值发生更改,请尝试将新值设置为绑定变量。
在本例中,要绑定到endVal的不是变量而是表达式。所以我不知道该怎么办
您有两个选择:
endVal:'@'
<count-up id="feafdcds" duration="1" end-val='promiseObject?promiseObject.value:0' class="number" ></count-up>
这样,当endVal更改时,Angular将始终更新promiseObject.value的值。但这也意味着您必须注意promiseObject始终存在(并且是一个对象)在您的外部控制器中的某个位置。
此外,您还必须将默认值0应用于其他地方的表达式,并尝试将其授予。您也可以在外部控制器中执行此操作,例如通过以下方式初始化promiseObject
promiseObject = {
value: 0
}
“=”是双向绑定,但您正在传递表达式。也许这就是问题的根源。我有没有别的办法可以做我想做的事?i、 e重新加载/重新运行/或某个指令,一旦promise对象被解析,当您更改作用域时会发生什么,以便endVal:“&”您可以创建JSFIDLE吗?或者扩展它:
<count-up id="feafdcds" duration="1" end-val='promiseObject.value' class="number" ></count-up>
promiseObject = {
value: 0
}