问题标签 [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.
javascript - JavaScript | 角 | 控制器作为语法:不能使用 `this`
无法使用 ControllerAsthis
任何人都可以向我解释以下情况吗?
作品
休息
那个使它成为关键字的单个字母——我想要的——破坏了森林。
为什么是这样?
PS 我知道这个vm
约定,但我发现它扰乱了控制器/视图模型的可移植性。
javascript - AngularJS 变量不会持续查看
这里有一个奇怪的错误,我可以成功切换到其他视图,但我的问题是即使是一个简单的变量也无法“到达”视图。有人看到我的(可能是愚蠢的)错误吗?
索引.html
控制器.js
主页.html
我使用硬编码文本进行了测试,每当我使用菜单导航时,它都会提供正确的视图。我也尝试过记录不同的对象(homeController、homeCtrl、...)。只有变量this不是未定义的,但这个变量只包含 $scope。
提前致谢。
javascript - 以角度更新http请求回调中的变量
这可能很容易,但尽管如此。我的控制器中有一个 http 调用,我在其中加载了一个 json 文件。我想根据结果更新我的 html 中的变量。它显然会更新 JS 中的变量(console.log),但不会更新 html 中的变量。有没有办法将 $apply 用于结果或类似的?还有什么好用的?这是一个(不)工作的 plnkr
JS:
HTML:
javascript - memory game with angular
I'm remaking a memory game to become familiar with controllerAs View Syntax. I've narrowed the problem to the check function; but i might be wrong. The check function passes card as a parameter but when i use console.log(card) there is no value for card, when card should have the value of the array hiragana or optionally letters.
angularjs - 同一元素中的多个指令对可见性进行操作
对于以下情况,我一直在努力使用我的方法。我有一个自定义指令authorize
,我在其中传递了一个组的名称。如果当前用户在他的个人资料中有这个组,那么该元素将是可见的,否则该元素将被隐藏。例子:
以及我在打字稿中使用链接功能的原始指令authorize.ts
(因为我在 DOM 上操作)
这工作正常,如果 authService 返回 false 因为用户不属于该组(即:),则隐藏按钮"accountants"
。
当我的 DOM 元素也有ng-show
orng-hide
指令时,就会出现问题。例子:
当myVm.isDeleted = true
它似乎覆盖了我的指令的结果并显示了 DOM 元素时(当它不应该因为用户不属于我的authorize
指令所指定的组时)。
我意识到指令中有一些优先级(默认情况下0
),当两个指令具有相同的优先级时,它们会根据文档按字母顺序执行。这篇文章对理解这一点很有帮助。
所以我在这里有一些选择:
让我的授权指令评估条件以
ng-hide
进行ng-show
计算(即:如果 ng-hide 说应该显示元素但用户没有特定的组,则应该隐藏元素)。我找不到myVm.isDeleted
在我的指令链接的函数中访问的方法。如果有人知道我会对这种方法感到满意。让我的
authorize
指令在任何其他指令之前执行,并依赖 angular 稍后根据ng-show
or确定可见性ng-hide
(即:如果我的authorize
指令确定元素应该隐藏,因为用户不属于给定的组,那么它应该转换 DOM元素并制作它ng-show="false"
,以便稍后隐藏元素。这种方法似乎不起作用,DOM似乎是正确的,我可以看到按钮有 ng-show="false" 但由于某种原因我仍然看到屏幕上的按钮,所以好像 Angular 不知道它必须隐藏该元素。有趣的是,如果我移动到另一个选项卡,然后我回到同一个选项卡(视图被重新加载并且指令重新-执行)然后它工作正常。这是怎么回事?.
我选择了选项 2,这是似乎可以正常操作 DOM 的代码,但是 Angular 之后没有应用 ng-show 指令,因此结果与预期不符。
angularjs - AngularJS Ctrl 作为服务的语法
我正在迁移我的 Angular 1.x 代码以使用更新、更首选的语法,避免使用 $scope 并将控制器用作语法。不过,我在从服务获取数据时遇到问题。
这是我的例子:
我遇到的这个问题是,从 userService.async 返回的数据是一个对象,我似乎无法深入了解从中获取数据,因为数据是 $$state 的子对象,它不能似乎在视图中使用。
如果这不是在 Controller As/$scope-less 语法中使用服务的正确方法,那么正确的方法是什么?
javascript - 为什么我的控制器方法不可用?
很长一段时间后,我不得不再次集中注意力。但是我失败了...
... ng-repeat="n 在 DataController.getObjects"
它正在将测试 1 写入控制台,但没有写入测试 2。前端没有获取数组。
对我有什么提示吗?
问候 n00n
angularjs - 如何从 Angularjs 中的指令更新控制器中的变量(ControllerAs 语法)?
我有一个dropzone
指令:
其中response
insuccess
事件处理程序是上传的文件 ID。
我想在我的uploadFileFormCtrl
:
这将适用于特定的控制器,即uploadFileFormCtrl as uploadFile
但是我有多个不同controllers
的(例如:uploadFile
、uploadImage
等)具有dropzone
文件上传器,所以我不能在指令中添加特定的控制器名称。
指令和控制器应该如何相互通信来实现这一点?