javascript - 指令定义语法澄清

标签 javascript angularjs

如果我在指令定义中声明以下隔离范围:

scope: {
    state: '=', 
},

这样说是否准确:= 将隔离范围上的 state 属性链接到与名为 state< 的属性关联的表达式返回的值 在指令声明上,在父作用域中运行?

最佳答案

例如,假设您的指令如下所示,

<div ng-controller="testCtrl">
    <directive-name state="scope_variable"></directive-name>
</div>

那么如果我们这样使用

scope: {
    state: '=', 
},

state指令上的属性应该是 $scope (testCtrl's)变量,如果它是范围变量则 state指向 testCtrl 中的相同变量的范围。

或 ex 的表达式,如 ...state="'scope_variable'"...那么它是一个 String 并且它不指向作用域变量,并且如果您将其定义为 ...state="1+2"...那么它的表达式是 state指令范围内的变量等于 3 .

希望这是有道理的。

这是一个demo .

注意

如果我们将指令定义为隔离范围 scope: {}然后 Angular 将从其直接父级创建一个子级作用域,(上一个示例的父级作用域是 scope of testCtrl )

查看所提供演示的控制台并查看 console.log(scope.$parent.name);指向$scope.nameMainCtrl的范围。

关于javascript - 指令定义语法澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32883840/

相关文章:

javascript - 这个正则表达式我缺少什么?

angularjs - 真的值得混合使用 AngularJS 和 KendoUI 吗?

javascript - 重用共享 Controller 的功能,为每个页面维护单独的状态

c# - 创建我的第一个网络应用程序,使用什么技术?

javascript - 如何使两列重复列表中的一项?

angularjs - 在Angular 1.4+中页面加载时ng-repeat交错动画

javascript - 带有值的 Angular JS 数学

javascript - 延迟指令/div 直到范围值可用

javascript - 获取表数据之间有空格的表行文本

javascript - 在浏览器中全屏播放 Youtube 视频