什么是指令表达式
指令等号右侧引号中的内容称为指令表达式(后文中简称表达式)。
任何合法的单javaScript表达式都可以作为指令表达式的内容(注意不要在表达式中添加“return”或声明变量):
✔️合法的指令表达式内容示例:
+click="alert(123)" // 可以在表达式中调用方法
+click="a = 1, b = 2" // 可以使用逗号表达式
❌非法的指令表达式内容示例:
+click="a = 1; b = 2" // 分号后的内容将被忽略
+click="return 1" // 不能在表达式中添加return
+click="const a = 1" // 不能在表达式中声明变量
指令表达式的回调参数
您可以在指令表达式中使用如下几个回调参数:
1. “$scope”,对象类型。指向当前指令声明位置对应的作用域变量
3. “$node”,对象类型。指向当前指令的宿主元素对象。
4. “$event”,对象类型。$event参数只在事件处理指令表达式中生效,指向当前被触发的事件对象。
参考如下示例:
指令的执行结果
指令表达式执行完成后返回的有效值称为指令的执行结果。
请注意,如果指令表达式的返回值是一个Promise,那么指令的执行结果是指此Promise处于已兑现(fulfilled)状态之后的结果值。
dagger.js会对指令表达式的执行结果进行后续处理以触发页面或数据更新。