问题标签 [angularjs-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 回答
2305 浏览

data-binding - AngularJS:如果元素具有 ngModel 和自定义指令,则两种方式数据绑定失败

我做了两个指令来在 AngularJS 中设置自定义错误消息:

错误 -> 显示表单的错误消息

error-message -> 在输入上设置自定义错误消息

出于某种原因,每当我将error-message指令添加到元素时,ng-model 绑定不再有效(但验证有效)。

见这里http://jsfiddle.net/apohl/A8Vgk/111/

请帮忙 :)

0 投票
2 回答
4599 浏览

angularjs - AngularJS - 指令范围未在元素上设置 ng-class

普朗克

我有一个数据表:

$scope.dndElemClass = 'on-drag-enter'我的目标是通过在元素的ondragenter事件侦听器上分配给表格一个阴影:

onDragEnter指令如下:

尽管$scope.dndElemClassondragenterondragleave事件侦听器中分配了值,但<table>似乎没有识别该值并分配类,因为没有出现阴影。

到目前为止,我已经测试过,如果我在指令的控制器属性中设置类,我在上面的代码中将其分配为空白,它确实可以识别该值,所以我知道它会从指令中接受它。将控制器中设置的类作为测试,如果我触发ondragenter侦听器,它将删除该类。我还确认了使用日志记录$scope.$apply()正确分配的值scope.dndElemClass,但无论出于何种原因,当在事件侦听器中设置时$scope.$apply(),表的ng-class属性将无法识别变量分配并认为它是空的。


更新: 根据 Josh 的评论,我清理了代码,这样我就不必$apply在事件侦听器回调中分配变量。

仍然没有运气。我可以验证它正在执行带有日志记录的回调,但没有运气让变量分配被表的ng-class属性识别。


更新2:阅读AngularJS关于 ngClass 的文档 后,我更加困惑。对我来说,我认为这就像将您想要的类的名称(s in a array)设置为当前控制器(或者在我的情况下,指令的)中的变量一样简单$scope,然后像在任何地方一样指定该变量的名称else 在元素的ng-class=""属性中。但正如我正在阅读的那样,当人们使用表达式切换类名时,它似乎要复杂得多。

使用切换的想法,我分叉了我的 plunker$scope.dndElemClass根据用户是否触发dragenterdragleave. 我还包括$scope.$apply()了很好的衡量标准,因为我发现我不了解angular.bind()over .addEventListeneror的优势.ondragenter = function() {};。无论如何,这一切都没有导致表的类像我期望的那样被设置。

0 投票
3 回答
22934 浏览

angularjs - 如何在 AngularJS 中停止 $broadcast 事件?

是否有一种内置方法可以阻止$broadcast事件沿着作用域链向下移动?

事件传递的事件对象$broadcast没有stopPropagation方法(如$rootScope 上的文档所述)。但是,此合并的拉取请求表明$broadcast事件可以stopPropagation调用它们。

0 投票
1 回答
7478 浏览

angularjs - 为什么 ng-style 不适用于与自定义指令相同的元素?

我正在尝试在自定义指令标签上应用 ng-style 属性,有点像这样:

在控制器内部,我有:

这似乎不起作用。当我检查 HTML 'MyStyle' 时没有呈现。当我在常规 div 上应用相同的 ng 样式标签时,它会正确呈现。

为什么 ng-style 不适用于自定义指令标签?

0 投票
12 回答
177528 浏览

angularjs - 来自外部 js 函数的 AngularJS 访问范围

我正在尝试查看是否有一种简单的方法可以通过外部 javascript 函数访问控制器的内部范围(与目标控制器完全无关)

我在这里看到了其他几个问题

angular.element("#scope").scope();

将从 DOM 元素中检索范围,但我的尝试目前没有产生正确的结果。

这是jsfiddle:http: //jsfiddle.net/sXkjc/5/

我目前正在经历从普通 JS 到 Angular 的过渡。我试图实现这一目标的主要原因是尽可能保持我的原始库代码完整;节省了我将每个功能添加到控制器的需要。

关于如何实现这一目标的任何想法?也欢迎对上述小提琴发表评论。

0 投票
1 回答
46107 浏览

angularjs - AngularJS 在指令模板中评估 $rootScope 变量

我有一个创建输入字段的指令。我需要将此输入字段的 ng-model 属性设置为 $rootScope 变量的值。这背后的原因是我希望输入字段在布局中,并根据加载的页面绑定到不同的模型。我以为我会在每个控制器中设置这个全局变量并在指令中访问它。

ATM 变量是硬编码的

和指令

它被渲染为

输入字段中的文本是 mymodel 变量的值。console.log 显示

任何人都可以对这个问题有所了解吗?

0 投票
1 回答
284 浏览

javascript - 定义隔离范围时指令行为发生变化

我有一个 javascript 网格库 slickgrid 的指令。

http://plnkr.co/edit/KWZ9i767ycz49hZZGswB?p=preview

我想要做的是将选定的行传回控制器。所以我想使用隔离范围(使用'=')来获得控制器和指令之间的双向绑定。

如果我在没有任何范围声明的情况下定义指令,一切正常:

但是,如果我取消注释上面的行(app.js 中的第 19-21 行),它看起来就像 $scope.$watch 正在监视 attrs.data 对象正在调用重绘,但 attrs.data 被传入未定义。

我的分析可能是错误的,但我不确定为什么定义范围会导致这种情况。有人可以解释为什么会这样吗?

.内森。

0 投票
1 回答
5022 浏览

javascript - 如何访问由 $resource get() 填充的 AngularJS 控制器中的数组?

我无法访问 AngularJS 控制器中的数组,但它可以在视图中使用。

在控制器中:.results返回未定义

在视图中:.results返回推文数组

0 投票
5 回答
159404 浏览

angularjs - AngularJS:从模型数组拼接模型元素时,不会更新 ng-repeat 列表

我有两个控制器,并通过 app.factory 函数在它们之间共享数据。

单击链接时,第一个控制器在模型数组 (pluginsDisplayed) 中添加一个小部件。小部件被推送到数组中,并且此更改反映到视图中(使用 ng-repeat 显示数组内容):

该小部件建立在三个指令之上,k2plugin、remove 和 resize。remove 指令将跨度添加到 k2plugin 指令的模板。单击所述跨度时,共享数组中的右侧元素将被删除Array.splice()。共享数组已正确更新,但更改反映在视图中。但是,当添加另一个元素时,在删除之后,视图会正确刷新,并且不会显示先前删除的元素。

我怎么了?你能解释一下为什么这不起作用吗?有没有更好的方法来做我想要用 AngularJS 做的事情?

这是我的 index.html:

这是我的 main.js:

0 投票
1 回答
5860 浏览

angularjs - 指令不插值,在模板字符串中

我正在尝试有条件地构建模板。我得到了一个带有一些 div 和 span 的 k2plugin 指令。根据 pluginui 属性,我想在模板末尾插入另一个指令。下面我的代码会插入除 pluginui 之外的所有内容。例如,最后一个 div 会导致:

{{pluginui}} 是文字,而它应该插入以触发另一个指令。有趣的是,如果我将 {{pluginui}} 放在同一行的其他位置(例如在标签之间,它会被插值。

我怎么了?