问题标签 [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 - 嵌套隔离范围之间是否可以通过两种方式绑定变量?
考虑下面的嵌套指令。我一直在尝试在嵌套指令的隔离范围之间绑定变量,并且无法实现双向绑定。
在示例中,我希望outerPower
绑定到并在数字增加innerPower
时更改。innerPower
javascript - 隔离范围角度绑定未从地理位置更新
我在指令中使用隔离范围。一切似乎都很好。我=
在两个属性上设置了一个范围,并在我的模板中绑定到它们。然后,在我的控制器中,我调用我的服务,获取数据并将其推送到绑定的对象上。
真正让我感到困惑的是,我既可以记录也可以设置断点,还可以查看数据,但是 angular 不会更新绑定(尽管它可以很好地更新我的 bool 字段)。
我提供了一个 plunkr: http ://plnkr.co/edit/8sVwaea5Amqvf3yiI1Nm?p=preview
相关代码部分是:
显然,如果我使用我的 $timeout 模拟,它工作得很好。但是,如果我替换 getCurrentPosition 函数,则没有任何更新(但它会记录)?!?!
帮助?
javascript - 隔离作用域 2 方式绑定不会更新父作用域的值
你好我有指令 foo 我有哪个控制器
我通过模板中的隔离范围将这个变量传递到另一个指令中
并在我的模板中使用 ng-if
现在,当我在我的子指令中更新有效时。它显示在我的模板中已验证。但是该变量没有在我的父指令控制器中更新。为什么会这样?
javascript - 访问通过 Angular 中的隔离范围创建的 ng-model
我有一个使用隔离范围的简单指令,它从模板内将数据传递给范围方法:
工作正常。但是我想在警报完成后清除输入字段。我很难弄清楚如何访问ng-model="value"
从指令中生成的输入。有什么帮助吗?
这是给你的
angularjs - ngChange 在 value 超出隔离范围之前触发
这是一个简化的指令来说明。当我输入输入时,我希望输入console.log
完全loadResults
注销我已经输入的内容。它实际上记录了一个字符,因为它正在主控制器中loadResults
的 var 接收来自指令的新值之前运行。searchFilter
然而,在指令中登录,一切都按预期工作。为什么会这样?
我的解决方案
在我的简单示例中了解了 ngChange 发生的情况后,我意识到我的实际问题更加复杂,因为我实际传入的 ngModel 是一个对象,我正在更改其属性,而且我我正在使用带有此指令的表单验证作为输入之一。我发现在指令中使用 $timeout 和 $eval 解决了我所有的问题:
javascript - Angularjs 属性绑定优先级
我们实施了下一个指令:
实际上,在实施过程中,我确信对scope.prop
字段的赋值会改变变量,它会显示为'link'
,而不是'attribute'
。但目前我们看到真正的价值将是isolated: attribute
. 但是,可以通过将字符串分配更改为对象分配来简单地修复它。
你能解释一下这种行为吗?
angularjs - 将函数从控制器范围传递到指令隔离范围
我正在使用 AngularJS,并试图将控制器范围内的函数传递给指令的隔离范围。
我知道我以前做过,但这次遇到了问题。
该函数接受两个输入,并将它们记录到控制台。
但是,当我将它传递给我的指令时
或者
并尝试从我的指令控制器中调用它,我实际上得到了一个不带参数并返回我的函数的函数。
也就是说,而不是调用
我得打电话
任何帮助将不胜感激。
我已经看到了一些这样的语法参考:
angularjs - 在另一个隔离范围指令中共享来自指令的数据
我试图通过编写组件样式指令对我的 Angular 代码采用组件方法,但我遇到了问题。下面是我的页面 html 模板。请注意,我使用的是AngularStrap选项卡指令。
我遇到的问题是 woSamplesSummary.materialsCount 在工作订单指令下未定义(在选项卡窗格范围之外),但它在选项卡窗格指令中正确显示为选项卡标题的一部分(在选项卡窗格内范围)。所以基本问题是如何在另一个隔离范围指令中使用指令时在页面上共享数据?
这是我的工作订单样本指令。我删除了大部分逻辑,但您可以看到我使用双向绑定设置了 woSamplesSummary 并将属性绑定到控制器,这一切都正常工作并且允许我不再使用 $scope。
所以问题似乎是 tabs 指令正在创建一个孤立的范围,所以我无法使数据在我所在的选项卡之外可用。
当在其他隔离范围指令中使用时,似乎应该有一种方法可以使指令中的数据可用。我尝试了许多不同的方法,但没有任何成功。在我的指令中将值分配给 $rootScope 确实有效,但这不是一个好的解决方案(例如 - 如果我想在一个页面上多次使用此指令)。
有任何想法吗?
javascript - 无法在 Angular 隔离范围指令上调用方法
鉴于以下示例,我很好奇为什么 scope:true
按预期工作来切换元素。但是,如果scope:{}
使用,则不会调用 toggle 方法ng-click
。通过我自己的实验,是否使用 bindToController 和 controllerAs 都没有区别,问题是一样的。