问题标签 [angularjs-controller]
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.
angularjs - 使用来自另一个模块的子控制器
我已经定义了一个模块,并使用 ng-app 指令将其作为我的应用程序的主模块。我使用 angular.module('myApp').controller() 在主应用程序中添加了两个控制器。其中一个控制器具有页面范围,而另一个控制器是子控制器。
我现在要做的是包含一个属于另一个模块(不是主 myApp 模块)的控制器,但我无法弄清楚。我不想全局命名空间控制器。
有人知道怎么做吗?
这是我到目前为止所拥有的:
此代码输出以下内容,其中包含一个 JavaScript 错误,本质上是说未找到 othermodule.controller 控制器。
App主控制器内容
应用子控制器内容
{{内容}}
确切的错误:
angularjs - 如何在页面中制作子角度控制器取决于页面的主控制器
在我的网页中,有一个主控制器需要使用服务通过使用 $http 或 getJSON 从服务器调用数据来完成一些初始化。一旦主控制器完成数据加载,页面中还有其他子控制器不应被调用。如何在控制器中注入 DI?
Edit1 ex:类似于从脚本 onload 调用 Angular 控制器的东西,
其中服务调用服务器以获取一些数据,并在完成后通知其他人。这可能吗?
angularjs - angularjs:防止路线更改
我尝试在我的控制器中执行以下操作:
但它不起作用。这不应该是这样做的方式吗?
angularjs - 数据更改后如何重新实例化 AngularJS 控制器?
我看过,并假设这很简单,但只是无法弄清楚 API 文档。
假设我有一个控制器,它在第一次调用时提取数据(当然,我遗漏了很多):
这很好用,当页面加载时,我会根据需要完全填充 $scope.data。然而,当然,用户可能希望更新数据。假设当服务器单击表单上的“保存”按钮时调用一个简单的服务“Data.save()”:
我会在可能重新实例化控制器的成功回调中添加什么,以便它拥有来自服务器的最新数据?目前我必须刷新页面以获取更新的数据。我现在并不担心通过兑现结果和更改来最小化服务器调用。我只需要先让它工作。
谢谢!
angularjs - 控制器和指令之间的角度通信
我有这段代码,它允许用户在项目列表上留下评论。我创建了一个指令并收听 keydown 以便让用户在keyCode == 13
.
不确定我是否应该包含在指令中发表评论的代码。在控制器和指令之间进行通信的最佳方式是什么?
在提交评论之前,我还会检查输入是否为空。它可以工作,但不确定这是 Angular 的最佳实践吗?
这是我的笨蛋。
angularjs - Angularjs:模型绑定
我有动态创建输入标签的指令。我需要在更改事件中获取已创建输入的值。取而代之的是,参数中的name
属性是未定义的。如何在指令控制器中获得价值?$scope
controller
ng-model
javascript - 如果我将所有数据提供给所有控制器,我会遇到什么问题?
我的 AngularJS CRUD 应用程序通过 WebSocket 服务器处理它的信息。(这主要是为了让一个用户的更新自动推送给所有用户,而不需要大量的 HTTP 轮询)
我很早就意识到,我必须以不同于通常使用 HTTP 服务的方式设置我的服务。通常,对于我正在使用的每个模型,我都会为他们提供自己的服务来填充该特定模型。但是,这对于 Websocket 连接是不可行的,因为我不希望每个服务都有单独的连接。因此,有几个解决方案。
1)设置一个建立连接的服务,然后与将使用该服务进行特定查询的其他服务共享该连接
2)创建一个单一的、类型不可知的服务,所有需要访问连接和数据的控制器都将使用该服务。
选项 2 似乎更容易管理,并且可以跨应用程序重用,所以我开始了。那时我意识到这实际上是一个机会。我可以创建一个主对象,并在数据从请求流入时根据需要data
动态创建子对象,而不是为客户端可以接收的每种类型的数据显式创建模型。myService.data
因此,如果我需要更新我的模型,我只需在服务器级别更新模型,客户端已经知道如何接收它;它只需要一个知道如何使用它的控制器。
然而,这个机会带来了一个缺点。显然,因为myService.Data
在创建时是一个空的、无子对象,任何想要引用其未来子对象的 Scope 都必须简单地引用对象本身。
例如,$scope.user = myService.data.user
抛出一个错误,因为该对象在声明时不存在。看来我唯一的选择是让每个控制器简单地拥有$scope.data = myservice.data
,并且每个控制器的视图都必须使用
< ng-model='data'>
,声明类似于{{data.user.username}}
。我已经测试过了,这确实有效。
我的问题是这个;有什么方法可以让我两全其美?我可以让我的服务动态更新它的数据模型,但仍然让我的控制器只访问他们需要的部分吗?一世?直到我意识到我的所有控制器都可以访问整个数据模型之前,我感觉自己很聪明……但老实说,我无法确定这是否是一个大问题。
这是我的服务:
这是一个访问用户信息的简单控制器。它实际上用在<div>
Index.html 中的永久标题中,在动态之外<ng-view>
。它负责启动 Websocket 连接。
这是使用该控制器的 HTML
javascript - 通过服务在控制器之间共享变量
据我了解,由于共享的服务变量是一个对象,控制器 1 加载到服务的对象应该可以被控制器 2 清楚地看到,而不需要 $watches 或侦听器或任何东西。我错了吗?我怎样才能让它工作?
javascript - angularjs:从 ng-switch 中的控制器更改父范围
所以,我可以从子控制器更改模型值,但是当子控制器在时,ng-switch
它就不起作用,为什么?我创建了一个示例来演示它。
避免这种情况的一种方法是.
在模型名称中使用 ,例如bunnies.kills
. 这是一个错误还是一个功能?
使用 Angular 1.0.6
javascript - Angular JS 延迟控制器和指令初始化,直到从服务器返回数据
我的 AngularJS 应用程序需要一些来自服务器的元数据才能初始化控制器和一些指令。我有一项服务可以返回数据,但无法让控制器和指令等待数据。
这显然不起作用,因为指令将在调用 db.metadata() 返回之前尝试使用未定义的 $scope 成员进行初始化。我尝试使用 $routeProvider 解析属性:
这不会运行,因为注入数组中“元数据”的缩小友好声明会导致 Angular 呕吐。删除声明会导致注入的元数据未定义。我究竟做错了什么?