问题标签 [angularjs-rootscope]
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 - 自定义 $compile 指令有时仅适用于同一范围
感谢您的关注。我将直接潜入:
JSON 对象具有带有ng-click
属性的 HTML 链接,使用ng-bind-html
, 和$sce
'strustAsHtml
使 HTML 安全。在将 json 加载到 Promise 中后,我还使用自定义angular-compile
指令将角度点击侦听器编译到应用程序中$q
。
乍一看,所有这些都按预期工作......
JSON
看法
指示
问题:
好的,所以它起作用了。我的应用程序加载,它提供安全的 HTML,我ng-click
打开模式,传递它的参数。我class='ng-binding'
在周围的p
标签class="ng-scope"
上看到,a
在生成的 html 中的标签上。万岁!
下一个任务是将该数据写入另一个跟踪进度的模型中,并在另一个视图中通过相同的ng-bind
, trustAsHTML
,运行它。angular-compile treatment
只需将数据复制到同级对象中。
这就是失败的地方!
在第二个视图中,它是同一页面上同一范围 ($rootScope) 中的模式 - 应用了绑定和 trustAsHTML Angular。但是链接不可点击,标签class="ng-scope"
上不会生成no。a
如果进一步解释我的设置可能有助于理解问题,让我在这里详细说明。所有初始应用程序都由礼宾部设置,并将大部分数据存储在 $rootScope 中:
我花了 2 天时间重构我的整个网站,看看是不是因为模态在它自己的指令中,但是把它放在同一个模板和范围内似乎对我没有帮助。
angularjs - 带有 TypeScript 的 AngularJS 1:在控制器中放置 $rootScope.on 的位置?
服务
控制器
但这没有意义,因为constructor
仅调用一次(每次启动)...:\
angularjs - 如何使用 $scope 收听 $rootscope.$broadcast
我的$scope.$on(...
似乎没有接听广播。
我有一个拦截器来捕获 http 响应错误并广播我的主控制器可以响应的事件。
在我的应用程序中,我故意向 API 提交一些无效数据并返回 http 400。
我可以在 Chrome 开发者工具中看到$rootScope.$broadcast('client_error', rejection);
被击中。
问题是这没有受到打击:
范围已加载。为什么它对广播没有反应?
angularjs - $stateChangeStart 循环上的 AngularJS
在一个 Web 应用程序中,我希望当用户在 $state 中路由时,Angular 会检查是否有令牌以及他是否有权限。但我有一个问题:即使我执行 event.preventDefault(),它也会启动一个循环并且浏览器崩溃。我怎样才能防止这个循环,让用户去或阻止导航?
代码:
angularjs - 无法从控制器访问 $rootScope 属性?
在 Angular 的运行块中,我在 $rootScope 上设置了一个属性,但是当控制器执行时,$rootScope 上不存在该属性。
当应用程序启动时,在调试器中我看到“adal:loginSuccess”处理程序被执行并且 $rootScope.isAdmin 确实设置为“true”,但是当控制器开始执行 $rootScope.isAdmin 时 $rootScope 上不存在。为什么?下面是我的代码
应用程序.js
控制器.js
angularjs - 如何将信息设置到 ng-view 之外的 index.html 中
我第一次使用 angular,在我的 index.html 文件中显示一些动态信息时遇到了一些麻烦。ng-view 标记内的所有内容都运行良好。
当用户进行身份验证时,带有用户信息的全局变量会被放入 $rootScope 和 cookie 中。我尝试通过执行类似 {{$rootScope.globals.currentUser.username}} 的操作来访问索引中的 $rootScope,但它不起作用。所以考虑下面的代码,我怎样才能在我的 index.html 中显示记录的用户信息?
我尝试在我的 app.js 中创建一个控制器并将 ng-controller 放在主体上。虽然这有效,但在用户注销时它不会刷新(需要刷新页面以更新应用程序控制器)。用户登录后也会发生同样的情况(需要刷新整个页面才能显示信息)。
在 $rootScope 中设置 cookie 和对象的代码。
我还有以下 index.html 文件。如您所见,我已设置 {{$rootScope.globals.currentUser.username}} 但用户登录后没有显示
我的应用程序文件如下
angularjs - 如果用户“触摸”个人资料上的表单输入并忘记保存:当他们单击 SideMenu 图标时显示“POP UP”
如果我的用户忘记保存他们在个人资料上所做的编辑,我会尝试为我的用户提供某种“错误检查器/验证”。
用户输入 Profile.html
state
。他们开始更新他们的一些信息(即姓名、电话号码等)。他们没有按“保存更改”按钮,而是通过单击移动屏幕左上角的 SideMenu 图标离开配置文件状态。由于形式现在在技术上被认为是“
$dirty
”。我一开始尝试使用这个角度属性,但我无法真正得到我想要的结果,所以我用$watch
..试试运气
ProfileController.js
也许我现在应该为此创建一个工厂或服务,但当时我使用$rootScope
了这样我可以在这个控制器上设置一个全局变量isFormDirty
,并在这个 Ionic 中保存侧边菜单逻辑的通用控制器上使用它应用程序。
controller.js (这是 SideMenu 的控制器所在的位置)
这基本上是我的代码的要点。它实际上“有效”,但我已经确定了一种模式,这就是我需要你帮助的地方,要么建议一种完全不同的方法来完成这个,要么可能是一些针对当前代码的重构技巧。
- 当用户单击侧边菜单按钮时,弹出窗口确实会显示,但我认为表单是否为 $dirty 并不重要..
更大的问题是,无论您尝试离开 profile.html 视图还是任何其他视图,弹出窗口都会开始显示。
当我编写这段代码时,我的印象是弹出窗口和toggleLeftSideMenu
函数只能在配置文件视图上工作,因为我正在“监视”updateDriverProfileInfo
对象,并且我还创建了在菜单控制器和配置文件控制器之间使用的全局变量。
angularjs - 在 Angular 1.5 中,在 $rootScope 中存储多个外部 json 文件的最佳方法是什么?
我有 3 个 json 文件来构建我的网络应用程序的前端:
- config.json 根据用户权限获取所有选项
- options.json 是用户的偏好
- foo.json 这是用户将修改的对象,感谢网络应用程序
在我的主控制器中,配置或运行(我不知道什么是最好的方法),我想加载所有这些 json 并将它们存储在 $rootScope 中以在 HTML 页面中构建我的组件的所有实例。
我已经尝试过这样做...
不幸的是,这不起作用。有人有一个想法和最好的方法在 Angular 1.5 中实现它,这将促进 Angular 2.0 的过渡?
angularjs - AngularJS 使用 $rootscope 的最佳实践?
我是角度的初学者,我尝试做这个教程(http://sahyalkabov.com/create-a-tv-show-tracker-using-angularjs-nodejs-and-mongodb/)
我使用 John Papa 的最佳实践。所以,我不使用 $scope 而是使用变量。 var vm = 这个;在我的控制器和 ui-router 上。
但在本教程中,有一次,他使用了 $rootScope。我已经看到这是不好的做法,但有时你必须使用。
在本教程中,您是否有没有 $rootScope 的另一种可能性,或者您别无选择?
谢谢 !
javascript - 在 Angular js 服务中观察和应用对对象的更改
我正在尝试在 Angular js 服务中更改和应用对象的值。
我已经能够成功地观察对象并且我看到了更改,但我无法应用它来生效。
我正在更改我的登录控制器的值。
我正在观看 $rootScope.userobject 并希望立即将更改应用于 $rootScope.userobj,因为它在我的服务中用于一些重要的东西,但它似乎并不适用。我究竟做错了什么 。在下面查看我的代码