问题标签 [angularjs-digest]
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 - 无法从内部指令更改 ng-model
我正在尝试创建一个ng-model
从父 html 标记更改但它不起作用的指令:
这是我的看法:
如何在有和没有 ng-repeat 的情况下从内部指令更新父 ng-model。
我创建了一个FIDDLE
javascript - 从控制器观察工厂变量
简化代码:
现在,当我运行应用程序时,控制器中的更新触发器foo.bar
成功更新为 1,并且来自 {{}} 模型的观察者相应地更新了 html。但是它通过单击鼠标在工厂本身更新,这与更新功能完全相同,更改不会出现在 HTML 中。
在控制器中具有额外范围的任何尝试均不成功。为什么会这样,我如何观察变化?
angularjs - 服务器响应后更新绑定/如何有选择地更新绑定?
我试图阻止模型的值在表单中更新。
例如 :
我有一个付款详细信息表单,其中列出了用户保存的信息(姓名、地址等)以及用于编辑相同信息的表单。
我一直在尝试使用 :: 一次绑定,因为我不希望在更改输入控件时更改显示的信息(但我显然希望模型更新值,以便我可以将它们发送到服务器进行处理)。
在服务器响应更改已保存、是否正常等后,如何更新显示的模型值?我似乎找不到更新一次性绑定的方法(因为我猜这完全是预期的功能)。
所以我想我的问题归结为:
如何选择性地更新某些控件而不是其他控件的绑定?
javascript - angular.js 按键指令事件神秘地没有触发
我按照这个示例提交表单,使用 AngularJS 按下 Enter
但我无法让它工作。这完全令人费解。为什么按键事件没有被我的指令捕获?
javascript - $scope.$watch 没有捕捉到指令修改的值
我的指令将焦点放在我的跨度上,并在我按下shifttab时分配布尔值,即 focusToSpan 为 true ,但是,此更改不会反映在我的控制器和模板中。我什至用 $scope.$watch 对 focusToSpan 变量进行了检查,如下所示
指示
控制器
没有被调用。我是否知道对指令中的控制器变量所做的更改将如何反映在控制器和模板中。谢谢,巴拉吉。
angularjs - 使用打字稿对 sucess() 超过 then() angularjs 进行消化错误
我在 typescript 中创建了一个 angular js 服务来发布文件,当它成功时我只是用来alert()
通知用户。
我可以调试代码并验证调用确实成功,但是当调用返回时,它显示成功,然后出现一个摘要错误,但如果我只是从服务返回一个承诺并在控制器使用then()
中,它工作正常。
我想知道有什么问题success()
以及是否then()
应该始终优先于success()
.
javascript - 为什么没有调用Angular Digest Cycle?
我有两个控制器和一个工厂。我将工厂和控制器注入主控制器,下面是代码片段:
工厂:
接受 TallyFactory 的 TallyController:
MainController 接受 TallyFactory 并更改 TallyFactory 对象的值:
请注意,在我的 TallyController(第二个片段)中,我向 $scope 添加了一个观察器,用于监听“分数”何时发生变化。
当我通过 ng-click 从我的 MainController 运行“addTally”函数时,它会更改我的工厂对象 (TallyFactory) 的值。由于发生了变化,并且我专门在我的 TallyController ($scope.scores) 上创建了一个观察程序,不应该触发摘要循环并且我的控制台更新为我的 TallyFactory 的新值吗?
此外,我的 TallyController 没有嵌套在我的 MainController 中,它们彼此分开(不是 100% 确定这是否重要)。
我不确定为什么在 TallyFactory 更改值后没有触发摘要循环。
javascript - 为什么console.log在它应该只记录一次的情况下被多次记录
我正在阅读这The Complete Book on AngularJS, Ari Lerner
本书,并在 ng-class 上找到了这个示例。generateNumber()
我在函数内部添加了一个额外的 console.log 。我看到它只记录了一次。
x
之后我用generateNumber()
函数调用替换了使用的地方。在我的更改看到这个之后,我的代码看起来像这样:
HTML
JS
所以我无法理解为什么console.log()
被记录了很多次,即使我单击按钮它应该只记录一次但它被记录了多次。我无法理解为什么多次调用该方法。有时我也会遇到这个异常(我只粘贴了前两行)
这个 $digest 是干什么用的?以及为什么它达到了极限。什么是观察者?并请说明为什么要进行多次记录?谢谢你们,
编辑
感谢大家的回复,但我想使用类似ng-class="{red: generateNumber() > 5}"
What is wrong 这样的东西。有人可以解释一下吗?我不想在$scope.x
那里使用,所以你们现在可以忽略它。
谢谢你们,
javascript - 如何通过 D3 点击事件让 $rootScope.$emit() 和 ng-show 一起工作?
我将 D3 svg 图像包装在角度指令中。当用户单击该 D3 图像时,我想在控制器中将变量设置为 true,以便 ng-show 然后显示另一个 D3 图像。
我所做的是.on("click")
向 D3 图像添加一个函数,并在该函数中用于$rootScope.$emit()
发送事件。在第二张图像的控制器中,我有一个$rootScope.$on()
ctach 事件并将 ng-show 的变量设置为 true。
这种方法行不通。我已经测试了代码以确保事件被正确地发出和捕获,但是 ng-show 没有显示第二个 D3 图像。
为什么是这样?
我创建了一个小 plunkr 来说明我正在尝试做的事情。 http://plnkr.co/edit/FnqeAF9kVXxdUdOzT5to。
控制器代码如下: