问题标签 [angularjs-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 投票
0 回答
405 浏览

angularjs - AngularJs: this 而不是 $scope: TypeError: this.* is not a function at *

尝试实现网络注册功能时,我遇到了一个问题。

老实说,我昨天刚刚在推送下阅读了一些关于 angularJs(以及一点关于 javascript)的文档。所以,请不要对我这么苛刻:)

以下是我的指令:

控制器:

这是以防万一的服务:

最后,问题是:

TypeError: this.setRegistering 不是 registerSuccess 的函数

它指向以下几行:

其他没关系,但我想在完成注册时调用它来隐藏进度圈。你能在这里给我提示吗?

我认为变量的范围出了点问题。但我不知道从哪里开始。

0 投票
1 回答
53 浏览

angularjs - 问题单元测试控制器作为:日志控制器返回一个承诺

我正在尝试测试使用 controllerAs 语法的控制器。我的问题是,当我尝试在控制器上测试一个函数时,我得到“预期未定义要定义”。

控制器(缩短版)

测试

当我运行测试时,这是我得到的输出:

运行“业力:单位”(业力)任务 PhantomJS 1.9.8(Mac OS X 0.0.0)日志:“警告:尝试多次加载角度。”

LOG: Promise{$$state: Object{status: 2, value: Error{message: ...}}} PhantomJS 1.9.8 (Mac OS X 0.0.0) PreflightCtrl 应该有一个名为 verifyDob FAILED 的已定义函数被定义。在 /Users/tracy/Projects/LemonaidClinic/src/views/preflight/preflight.controller.spec.js:80 PhantomJS 1.9.8 (Mac OS X 0.0.0) PreflightCtrl 应该验证 DOB FAILED TypeError: 'undefined' is not /Users/tracy/Projects/LemonaidClinic/src/views/preflight/preflight.controller.spec.js:85 PhantomJS 1.9.8 ( Mac OS X 0.0.0):执行 15 次中的 15 次(2 次失败)(0.006 秒/0.204 秒)警告:任务“karma:unit”失败。使用 --force 继续。

由于警告而中止。

第 80 行是这一行:expect(PreflightCtrl.verifyDob).toBeDefined();

第 85 行是这样的: PreflightCtrl.form.dob = '01/01/1990';

你可以看到第一行是控制器的日志,它返回一个承诺,这意味着控制器上没有需要存在的函数或变量。

我也不确定为什么 Angular 会尝试多次加载,但它似乎并没有影响任何其他测试。

我究竟做错了什么?

先感谢您。

0 投票
1 回答
253 浏览

javascript - 使用 controllerAs 语法和原型继承扩展 Angular 控制器

我正在尝试使用 conrollerAs 语法扩展控制器。我的父控制器和子控制器没有定义在同一个范围内,所以我把父控制器(BaseController)放在一个服务中:

然后像这样使用它:

ChildController在ui路由器状态下使用。状态模板未加载,并且我在控制台中收到错误消息:

Resource for page controller is not defined <div class="ng-scope" ui-view="foo-view">

有任何想法吗?

0 投票
1 回答
36 浏览

javascript - Angular 控制器函数既是构造函数又是装饰器?

如果controller as ctrl为以下代码编写 a:

下面的伪代码是否准确地描述了$scope与 的区别controller

我的问题是:

  • 上面的伪代码是否是范围与控制器对象不同的准确心理模型?
  • 是否function Controller(){}同时是构造函数(用于控制器对象)和装饰器(用于范围对象)?
0 投票
3 回答
96 浏览

javascript - AngularJS $scope 和 Controller 作为语法真的没有区别吗?

我正在学习 angularJS,在学习的同时发现控制器作为语法更容易阅读,并且对于来自 OO 世界的我来说更容易理解。我已经阅读了几篇文章和 SO 答案,它们似乎都指向 $scope 和 'controller as ' 语法是相同的,并且 'controller as' 语法只是语法糖。

但是,我在这里发布了另一个关于 SO的问题,回答该问题的用户说即使我使用控制器作为语法,我仍然必须注入 $scope 才能使用“ui select”指令。它是哪一个?如果我不必使用 $scope,我缺少什么来让“控制器作为”语法与 ui-select 一起工作?

0 投票
1 回答
715 浏览

javascript - 将 $scope 数据从控制器传递到视图

我想在我的视图中显示$scope.predicate$scope.reverse值(在<p>标签中)。似乎使用{{ }}表达式不起作用。

应用程序.js:

HTML:

0 投票
1 回答
106 浏览

javascript - Angular JS 使用 controllerAs 和 this 语法与范围或 this 变量

我一直遇到一个问题,它导致与控制器范围变量的定义不一致。

正如您可能知道的那样,使用controllerAs语法,您必须将所有变量与实例附加到控制器函数中,如下所示:

现在的问题是this.translatefDromService不能从任何服务的成功错误函数或事实上任何其他函数更新,因为它将 this 作为新函数的实例而不是控制器。

在这种情况下可以做什么。

我使用了一种解决方案,您将其标记为 vm。 var vm = this在控制器的开头,但除此之外还有什么解决方案吗?

干杯!

0 投票
0 回答
193 浏览

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

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

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

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

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

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

UI-路由器配置:

指令

0 投票
3 回答
187 浏览

angularjs - AngularJS: code not working when iterating through object

I am trying to populate a list of employee objects from my controller empctrl in a template.

Here's the controller:

However, this code that I wrote isn't working:

Nothing shows up in the UI.
Instead, if I write $scope.employees in the controller, it works:

Since I know how tempting it is to do $scope.<everything> in the controller, I'm trying to avoid using $scope as much as possible.


If someone could demonstrate the proper use of $scope and difference betwee alias.abc and $scope.abc (where alias is an alias of controller), I'll be thankful.

Edit: Exact same question is this: 'this' vs $scope in AngularJS controllers

Thanks for this link, PankajParkar.

0 投票
1 回答
2061 浏览

javascript - 使用 ng-click 更改 ng-repeat 循环内的值

我想使用函数更改 ng-repeat 循环中项目的值。

例如,这将不起作用。

HTML

JS

完整示例

http://plnkr.co/edit/kobMJCsj4bvk02sveGdG