问题标签 [controlleras]

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 回答
183 浏览

javascript - 如何使用 controllerAs 语法实时更新另一个角度控制器

我目前正在尝试使用来自一个控制器的服务从 Web API 中检索行计数值,然后在从数据库中检索到该值后更新另一个控制器的变量——同时避免使用 $scope 或 $rootScope。

下面是 Controller1 - 当服务中的值更改时,此控制器需要更新其变量。目前它运行正常,但我想避免使用 $scope 或 $rootScope:

服务 - 我想避免在这里使用 $rootScope.$broadcast :

下面是 Controller2 中的一个函数,用于更新服务中的值 - 我希望能够在执行此操作后立即更新 Controller1 中的值:

0 投票
0 回答
294 浏览

angularjs - 在模板中使用别名控制器进行编译

我正在对控制器进行单元测试,我想检查视图是否正确更新。视图的某些字段与控制器的字段/功能相关。当我尝试获取编译视图时,我无法使用他的构造函数将控制器链接到链接函数。我创建了一个plunker

它仅在我将主要属性添加到 newScope 时才有效,因此我想我没有正确使用 linkFn() 函数,但我无法找到任何有关它的文档或示例。

[编辑] 我在Angular文档中发现,linkFn 的第三个参数是“transcludeControllers - 一个对象散列,其键将控制器名称映射到控制器实例;如果给定,它将使控制器可用于指令。”,但它似乎不适合我

0 投票
1 回答
27 浏览

angularjs - 使用 angularjs“controllerAs”语法时,拥有一个容器对象仍然是一种好习惯吗?

我最近发现了 controllerAs 语法,我想知道它是否排除了将范围变量包装在对象中以获得引用的需要。

抱歉,我可能没有问清楚,但我的意思是以下两个声明彼此一样安全,还是在使用 controllerAs 时我仍然应该使用模型对象以避免嵌套范围的问题?

旧方法 -

控制器作为 -

0 投票
1 回答
1695 浏览

typescript - 将数据从调用控制器传递到 ngDialog 的最佳方法 - 检查我的代码

我正在使用 ngDialog 来显示/更新/删除详细记录。我的代码工作正常,但我不喜欢这样使用 $scope 的方式。$scope.newContact = this.newContact;

我想使用控制器或控制器作为语法,但不能让它工作。由于我使用的是 Typescript,我不喜欢这种 $scope 注入。任何建议将不胜感激。

// 更新:发布详细代码以进行澄清 我的场景是这样的: - ContactController 填充联系人列表 - 用户单击联系人或单击添加新 - 联系人控制器将显示 ngDialog - 用户更新联系人详细信息并按保存然后ContactController 被 ngController 回调,contactController 将更新列表。我只是希望能够在不使用 $scope 混乱的情况下将 this.newContact 传递给 ngDialog!

这是我用于上述场景的控制器代码:

}

这是我的模板:


0 投票
0 回答
193 浏览

angularjs - (Angular)传递控制器实例以隔离范围

虽然下面的代码“有效”,但肯定感觉非常错误。有没有“最佳实践”的重构方式?问题是我将控制器的一个实例传递给一个隔离范围指令

(注意:我不能在指令中使用它:

控制器:'ViewController',controllerAs:'viewCtrl',

因为我需要相同的控制器实例..)

可能只是我一开始没有正确设置它,但很想知道是否有一种“重构”它的好方法

UI-路由器配置:

指令

0 投票
2 回答
556 浏览

javascript - 从模板angularJs中的控制器填充id属性的值

我正在写一个directivewith angularJs,下面有一个简单的模板html template和一个contorller as c

模板:

但问题是即使<p>测试标签显示正确的值,input id也没有得到值。
我已经尝试过这些id="c.inputId()", id='c.inputId()', id="{{c.inputId()}}", id='{{c.inputId()}}',但它们都不起作用。
任何想法我的代码有什么问题,我该如何解决?

编辑1
我想我最好解释一下documnet.getElementbyId返回null ..也许这是我的错误,我没有提到它是为了使问题简单,我没有意识到documnet.getElementbyId返回null。

0 投票
1 回答
2447 浏览

directive - 如何从指令控制器访问 ngModel

我需要在指令控制器内进行一些检查并设置 ngModel.$setValidity('some', false),但ngModel is not defined出现错误。注入 ngModel 没有帮助......

PS 我知道我可以访问它link,但是是否可以在指令中访问 ngModel 控制器controller

0 投票
1 回答
70 浏览

angularjs - 带有自定义指令的 Angular ControllerAs 语法

您好,我在上传图片时遇到问题。我使用打字稿,所以我尝试调整fiddle. 我在互联网上找到了,但问题是我没有使用范围,因此没有从指令中修改字段“myFile”。我使用了bindToControllerandscope:{myFile'='}但它不起作用。

谢谢你的帮助

0 投票
1 回答
60 浏览

angularjs - 使用控制器作为内部指令模板时访问控制器的 this

不使用孤立范围时如何访问This指令及其模板内的控制器?

0 投票
1 回答
546 浏览

angularjs - angularjs 指令单元测试因controllerAs、bindToController 和isolateScope() 而失败

我正在尝试对具有双向绑定属性 (=) 的指令进行单元测试。该指令在我的应用程序中有效,但我无法进行测试双向绑定的单元测试。

我一直试图让这个工作好几天。我已经阅读了许多示例,这些示例使用了我想使用的一些但不是全部功能:controllerAs、bindToController 和isolateScope()。(忘记我也需要的templateURL。如果我能做到这一点,我会补充一点!:)

我希望有人能告诉我如何显示隔离范围中反映的父范围的变化。

这是一个包含以下代码的 plunkr:

http://plnkr.co/edit/JQl9fB5kTt1CPtZymwhI

这是我的测试应用程序:

这是规格: