问题标签 [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.

0 投票
1 回答
9890 浏览

angularjs - 使用表达式 `("&")` 绑定将数据从 AngularJS 组件传递到父范围

无法从角度组件输出绑定功能访问控制器范围

我正在尝试从仪表板组件访问我的主控制器范围,但它未定义。

我也尝试了第二种方法,但我的函数变量未定义。

我正在使用带有 Typescript 的 Angular 1.5

第一种方法:

家庭控制器 HTML:

家庭控制器js:

仪表板控制器js:

第二种方法:

家庭控制器 HTML:

仪表板控制器js:

在这里,我得到了相反的结果:

0 投票
2 回答
381 浏览

angularjs - AngularJS ─ 无法通过指令控制器的链接获取范围

我有一个结构非常简单的示例应用程序(您可以在这里看到它:http: //plnkr.co/edit/5VAqUQsqKFGoteahacR2 ?p=preview ):文件 index.html 包括模板(app/templates/home.html),反过来,它包括指令的模板:

它包括下一个指令:

参数 inner2 的值在 contentsCtrl 控制器中定义的 $scope.contents 对象的键:

需要这个键来提取指令脚本(app/scripts/directives/defaultDirective.js)中的对象字段:

最后一个折叠指令(app/templates/inner-directive-2.html)的内容非常简单:

所以想法是通过调用 getStuff() 来获取 $scope.contents[object_key]。但它看不到$scope.contents。我认为可以通过将隔离范围参数(见上文)内容绑定到外部范围来完成:

...但它不返回范围对象,而是返回函数。可能这里出了点问题。问题是: 1. 为什么起作用,它从何而来?2. 我可以通过某种方式获得 $scope.contents 吗?如何获得?

http://plnkr.co/edit/5VAqUQsqKFGoteahacR2?p=preview

0 投票
0 回答
94 浏览

angularjs - 隔离范围在 angualrjs 中不起作用

我了解孤立范围的概念。

我对理论方面很好。我已经在代码上执行了隔离范围,但我对此并不清楚。

这是我的自定义指令

我从父控制器分配值。

这是我的自定义指令

和自定义指令的控制器是

一切都在为此努力。在这里,我试图整合孤立范围的概念。但我不知道如何集成此代码

0 投票
1 回答
2845 浏览

angularjs - 将数据从 ng-click within 指令传递到控制器中的函数

我发现这个问题让我几乎到达了我需要的地方。 为什么 ng-click 在我的指令中不起作用,如何添加切换类?

这使得我的指令模板中的 ng-click 触发了我的控制器中的一个函数。 http://plnkr.co/edit/GorcZZppa8qcIKbQAg2v?p=preview

问题是返回给我的控制器(项目)的参数是 undefined。我需要这个来实际从我的指令中的变量传递数据,以便在我将在控制器中运行的函数中使用。

指令模板文件

指示

指令实施

控制器中的功能

(项目)未定义

0 投票
2 回答
627 浏览

angularjs - 没有模板的 Angular 指令 - 从指令分配 ng-click 函数

如何在应用指令属性的元素上设置 ng-click 功能?在我的指令模板出现问题后,因为它跨越多个 tr,我导致使用 ng-repeat-start/end 即没有模板。所以,我的问题是:将指令元素的内容放入指令的隔离范围的正确方法是什么,所以我可以为它分配值/函数,就好像它是模板一样?

// 控制器作用域

// 指令

0 投票
2 回答
194 浏览

javascript - 隔离范围 - 仅在指令范围内定义的值必须执行更改

我正在尝试隔离自定义指令范围。

我与许多开发人员核实了一个具有挑战性的问题,但到目前为止我没有得到答案。

请从 Link 的 JS Fiddle 中找到代码,并帮助我更正我应该做出哪些改变才能让这个东西正常工作。

指令模板中有一个名为My Reverse的按钮“单击按钮时,我想更改指令模板中的文本值而不影响父值**”

期待在提供的 Fiddle 代码中进行更正。在 JS FIDDLE 中请求更正此代码示例

更具体的说明:

当我单击父按钮时,我想影响指令文本框的值,但是当我单击指令的按钮时,我只想影响指令文本框的值而不是父文本框的值。


等待解决方案..请任何人帮助我..将非常感激

0 投票
1 回答
670 浏览

angularjs - Angular Karma - 具有隔离范围和控制器的指令,调用 element.isolateScope() 返回未定义

嗨有这个指令:

我正在尝试测试它,但我无法访问isolateScope(),这是我的测试代码:

我有很多次相同的设置,知道为什么我无法访问isolateScope我的指令吗?

这是一个带有代码和测试的 Plunker:http ://plnkr.co/edit/JYYtck?p=preview

0 投票
2 回答
563 浏览

angularjs - 指令隔离控制器中未定义的范围数据

我一直在为图片库写一个模块,我遇到了一个问题,我的隔离范围变得未定义并且不会改变它的状态。我无法理解它的原因。

我附上了一个plnkr - http://plnkr.co/edit/3SJF4AwTeL2osvdEOlmc?p=preview

画廊.directive.js

我究竟做错了什么?

编辑

现在我添加了我正在使用的全部内容,以遏制全局变量的混淆 - 请在此处查看代码http://plnkr.co/edit/3SJF4AwTeL2osvdEOlmc?p=preview

我一直在将它与 store 指令一起使用——gallery 指令从其中使用数据。

问题- 我接受图像显示完美,但在我的控制台中我无法看到Array[3],而是undefined打印了一个。检查我尝试从控制台打印的Gallery Controller下面的行。vm.gallerydata

编辑

未定义的图像: 在此处输入图像描述

我能够看到出现在视图中的图像,但控制器打印vm.gallerydata为未定义。

0 投票
1 回答
361 浏览

angularjs - md-datepicker 上的角度多指令错误

我正在制作一个动态的日期列表。用户可以添加他想要的所有日期选择器,但我必须验证没有匹配的日期,它们都必须不同,这是唯一的必要条件。

我已经进行了自定义指令验证并且它被正确触发,但是当我尝试使用它的隔离范围时,我只是得到了那个错误(多个指令)。我在这里看到的其他问题/解决方案建议删除隔离范围,但我需要它将日期数组传递给指令并能够将它们与当前选择的进行比较。

这是一个重现问题的代码笔。如果您删除noMatchingDates指令的scope,错误就会消失,您可以正确查看和添加日期选择器。我的意思是scope

我认为这与docs中的这一行有关:

请求隔离范围的多个指令。

它可能还与 md-datepicker 有关,它使用隔离范围会有更多指令。那么,我该如何解决这个错误(并且仍然能够发送日期列表)?

如果鉴于md- datepicker的性质无法解决(保持范围),我该如何进行动态验证?我认为这可以使用控制器和 来完成ng-change,但我不确定这是否是一个合适的解决方案。

0 投票
0 回答
132 浏览

angularjs - AngularJS 控制器与嵌套隔离范围指令的通信

在我的 AngularJS 应用程序中,我必须创建一个手风琴,每个部分都包含一个滑块控件。我希望手风琴和滑块都向外部控制器公开 API,例如:

或者

我希望能够在控制器中做类似的事情:

我正在考虑为手风琴和滑块创建隔离范围指令,并使用双向绑定允许它们将其方法公开给父控制器。页面模板将如下所示:

但是在这一点上,我迷失在一个孤立的范围和对孩子的有限可见性的迷宫中,似乎没有办法从外部控制器访问内部元素。我搜索过的许多解决方案似乎认为让指令与控制器对话而不是相反是正常的,但这似乎破坏了封装。

关于如何做到这一点的任何想法?这个问题的正确 AngularJS 模式是什么?