问题标签 [isolate-scope]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 指令中的控制器问题
我正在尝试更新一个小型个人项目中的一些代码,该项目使用 Angular 来符合更好的实践,我听说 Angular 的未来可以通过将大量功能放入指令控制器中来模仿。我不确定我的理解有多正确,但这似乎是一种组织代码的干净方式。
无论如何,为了解决我的问题,当我给我的指令一个控制器时,我似乎无法让隔离范围工作。我一直在用谷歌搜索我的大脑,试图找出问题所在,我看到了很多关于它的话题,但没有一个能解决我的问题。
这是一个代码片段:
这实际上只是在我移动功能之前进行测试的一种方法,但是当我取消注释这些行时,我不再有权访问我传入的隔离范围,并且通过它访问的所有数据都消失了(它是一个数组对象ng-重复)。
我在位于该指令内的指令中也有类似的问题。这个问题让我更加困惑,因为如果我在$scope下定义了一个方法,我可以正确使用它,但是当我使用controllerAs时,我不能使用那个方法。所以当我从这个网站(劳伦在下面提到)中拉出这个实现(以删除范围)时,我非常难过
这是代码:
我不确定该问题是否与此问题有关,但它们似乎相似。任何可能有帮助的资源的帮助或指导将不胜感激,因为我不想编写我的约定不断变化的代码,因为我不完全理解为什么一件事有效。
谢谢!
javascript - 隔离作用域 angularjs,抛弃依赖注入,可重用组件
我已经有一段时间没有真正摆弄 angularjs 的指令了,我仍然没有很好地掌握它。在我深入研究它之前,我正在考虑他们如何做他们的组件。
所以我搜索了如何使用指令创建可重用组件,并找到了这篇文章:
http://michalostruszka.pl/blog/2015/01/18/angular-directives-di/
但是他的最终解决方案的实现非常模糊,因为我无法弄清楚如何正确使用它。
假设我创建了一个标题指令:
还有另一个使用相同服务的指令,epwEventStore
以便它可以更新状态
呈现epw-event-list
列表的位置以及单击时应更改 的vm.title
值epw-title
。
这怎么可能?
更新
问:它们是嵌套的吗? A:不,他们是兄弟姐妹。
angularjs - 设置我希望我的指令监听哪些事件
我有一个这样的指令:
我有这个:
和
javascript - 为什么我的角度指令没有在隔离范围内获得父控制器范围?
我已经精确地遵循了 Angular 文档,以获得一个使用隔离范围的指令,该范围包含来自父控制器范围对象的几个变量。
http://plnkr.co/edit/FpQtt9?p=preview
谁能告诉我我的代码有什么问题?为什么指令的 Isolate 范围会为“myPokie”和“name”返回未定义的值?
我见过其他人说你必须为此使用 $scope.watch .. 但是 angular 的指令文档对此没有任何说明.. 我真的不想将 $scope.watch 用于如此微不足道的事情应该开箱即用。
javascript - AngularJS 从范围创建新范围
我真的不明白为什么这段代码会这样工作。
我调用我的服务并返回预期的数据。我希望单独存储图片,因为我需要修改数组并将其解析为不同的新范围。我不明白的是,因为我现在已经创建了 2 个范围,产品和产品图片 - 为什么这些仍然链接?
如果我使用 Lodash 来 _.sort() productPictures,那么 scope.Product 内的 Images 对象也会被更改,但是我不希望这种情况发生,而且我不知道如何隔离 $scope.productPictures。我尝试将范围处理为简单的 js 变量,例如 var product; 和 var productPictures,但是当我根据服务的响应设置它们的数据时,它们仍然是链接的。
我是否忽略了一些非常微不足道的事情?我是否应该在单独的服务请求中管理产品图像?
angularjs - AngularJS 通过隔离范围进行基于事件的通信
在 AngularJS 中,一个指令如何使用基于事件的通信 ( $emit
,$broadcast
和$on
) 与另一个具有隔离范围的指令进行通信?我创建了两个指令,当从第二个指令中删除隔离范围时,第一个指令能够使用 emit 与第二个指令成功通信。但是,当将隔离范围添加回第二个范围时,通信就会中断。
我创建了一个 Plunker 来说明这个问题。您会注意到,如果您在第二个指令的指令定义对象中注释掉“范围”属性,则通信正常:您可以在第一个指令的输入框中键入一个字符串,按下第一个指令的按钮指令,并将字符串传递给第二个指令,后者将其显示在视图上。(就目前而言,由于隔离范围问题,Plunker 已损坏,请参阅 app.js 文件的第 19 行。)
http://plnkr.co/edit/AXUVX9zdJx1tApDhgH32
这是我的首要目标:我为第二个指令使用隔离范围的原因是将内部范围与外部范围分开。(在我的项目中使用的实际“第二个指令”比这个玩具示例复杂得多。这就是必要的原因。)我知道 AngularJS 提供了将外部范围映射到指令的内部范围的机制。我很好奇这些机制中的任何一个对于映射基于事件的通信的事件是否有用。
如果答案是隔离范围对于基于事件的通信是不可逾越的,那么在我已经说明的情况下,完成指令到指令通信的最佳方法是什么,同时仍然实现我的目标?谢谢!
javascript - 使用隔离范围获取隐藏按钮的属性
我想使用隔离范围来获取hideButtons
指令中的属性,todo-cardui
并且todo-formui
:
它们的父级是一个名为的指令create-modal
,如下所示:
}]);
我使用这样的代码:
该物业hideButtons
尚未被取走。todo
我也尝试过:
这会引发错误:
javascript - 如何在没有隔离范围的情况下分离范围?
隔离范围很不方便,因为指令停止从父范围继承。
所以现在当我想在相同的范围内使用相同的指令时,我正在使用ng-if
来分隔指令范围,如下所示:
这样,两个指令的属性就不会混淆,而不必诉诸隔离范围。
到目前为止,我还没有注意到这种方法有任何问题,但它看起来确实很老套。有没有更好的方法来做到这一点?
javascript - Angular Directive - 我可以从父级继承隔离范围吗?
我正在尝试编辑由其他人编写的角度指令,但遇到了一个问题。这是一个属性指令,我想观察传入的值作为属性值的变化。
当我给它一个隔离范围并使用 scope.$watch 观察属性时,这很有效。但是,使用隔离作用域会破坏指令,因为它最初将作用域设置为 true,这是它需要用于其他事情的(据我了解,这意味着它继承了父作用域)。
所以我的问题是,我怎样才能继承父作用域,同时也观察属性的值?
为了帮助澄清,这里是指令的一个基本示例:
由于它没有继承父范围,因此会引发错误。如果我设置
我的错误已解决,但手表处理程序从未运行。
HTML的粗略轮廓:
请帮助我,谢谢!
angularjs - AngularJS - 隔离范围表达式(“&”)的替代用途
我知道"&"
绑定用于将方法(表达式)传递给指令隔离范围,因此指令将能够在需要时执行它。
很多时候,我需要将相同的表达式从我的主控制器“传递”到嵌套指令(2-3 级),深度超过一层。这就是为什么我自己不喜欢"&"
为此目的使用。对我来说,使用绑定发送“回调”"="
效果更好。但这不是一个问题。
问题是:除了传递函数之外
,我还可以使用什么?"&"
我可以有这样的东西:my-directive-click="clickCount +=1"
?