我第一次和AngularJS一起玩,并且正在努力使用ng-include来处理我的页眉和页脚。 这是我的树: myApp assets – CSS – js – controllers – vendor – angular.js – route.js …… …… …… main.js pages – partials – structure header.html navigation.html footer.html index.html home.html index.html的: <!DOCTYPE html> <html ng-app="app"> <head> <title>AngularJS Test</title> <script src="/assets/js/vendor/angular.js"></script> <script src="/assets/js/vendor/route.js"></script> <script src="/assets/js/vendor/resource.js"></script> <script src="/assets/js/main.js"></script> </head> <body> <div ng-include src="partials/structure/header.url"></div> <div ng-include src="partials/structure/navigation.url"></div> <div […]
我刚开始学习AngularJS,并与AngularJS的一些概念斗争。 如果有人能够解释我一些观点,那将是很棒的。 我明白ng-click在技术上与onclick (见这里 ),但两者都被放置在标记中。 我认为这会是一个“坏习惯”? 为什么AngularJS的核心概念之一,如果大多数人说这是“坏”? 我认为最好是从JavaScript中selectDOM元素,而不是将逻辑放在标记中。 如果ng-click是在AngularJS中点击事件的正确方法,那么我应该如何处理其他的DOM事件呢? 我发现还有其他几个像ng-mouseover这样的指令,但并不是所有的DOM事件都有一个AngularJS等价物。 我将如何处理AngularJS中的“drop”事件(因此以AngularJS的方式 – 而不是正常的方式)? 要清楚:我想拖动一个文件到我的webapp 。 非常感谢,Pipo
<html ng-app="app"> <head> … </head> <body> <div id="header"></div> <div id="notification"></div> <div id="container"></div> <div id="footer"></div> </body> </html> 与应用程序的给定结构(从angular度应用程序派生): 标题:这里的网站导航,login/外出工具栏等进来。这是dynamic的,并有它自己的控制器 通知:全局通知容器。 容器:这曾经是我的<ng-view> 。 所以这是所有其他模块加载的地方。 页脚:全球页脚。 状态层次如何? 我已经通过显示单个模块(联系人)的示例,但通常应用程序将具有全局(根)状态,并在根状态内呈现其他模块状态。 我在想什么是我的app模块可能有root状态,然后每个模块应该有它自己的状态,我必须从root状态inheritance 。 我对吗? 另外从ui-state例子,他们已经使用$routeProvider和$urlRouterProvider以及$stateProvider具有URL定义。 我的理解是$stateProvide也处理路由。 如果我错了,我应该使用哪个提供程序进行路由? 编辑 : http : //plnkr.co/edit/wqKsKwFq1nxRQ3H667LU?p=preview 谢谢!
Angular对于构build单页面应用程序非常有用。 它基本上是build立在当前的范例上,我们向不同的端点发出请求来帮助我们创build更好的单页面应用程序。 另一方面,我们有meteor似乎更加有能力,尤其是因为他们有一个名为DDP的function,基本上允许双向数据stream。 看起来Meteor是Angular的超集,是明显更好的select。 虽然Angular提供了一些整洁的东西,如testing和本地化,但我不明白为什么我会使用Angular和Meteor,而不是仅仅使用Meteor。 有人能解释一下,为什么我想用meteor的方式来使用Angular,或者如果我使用meteor,甚至可以使用任何MV *前端框架?
背景 我有最基本的“新手”AngularJS问题,原谅我的无知:如何通过代码刷新模型? 我确定它在某个地方被多次回答,但我根本找不到它。 我在这里看过一些很棒的videohttp://egghead.io,并且很快就通过了这个教程,但是我仍然觉得我错过了一些非常基本的东西。 我在这里find了一个相关的例子( $route.reload() ),但我不确定如何在下面的例子中使用它 这是设置 controllers.js function PersonListCtrl($scope, $http) { $http.get('/persons').success(function(data) { $scope.persons = data; }); } 的index.html … <div> <ul ng-controller="PersonListCtrl"> <li ng-repeat="person in persons"> Name: {{person.name}}, Age {{person.age}} </li> </ul> </div> … 这一切都非常好,每当页面重新加载时,我都会看到预期的人员列表 问题 比方说,我想实现一个刷新button,我如何告诉模型以编程方式重新加载? 我怎样才能访问模型? 看来Angular神奇地实例化了我的控制器的一个实例,但是我怎么把它放在手上呢? 编辑添加了第三个问题,与#1相同,但它怎么可以纯粹通过JavaScript? 我确定我错过了一些基本的东西,但花了一个小时试图找出它,我认为这是值得一个问题。 请让我知道,如果它是重复的,我会closures+链接到它。
我试图得到Angular $q服务及其相关对象和API的处理。 当我看我的控制台中的对象时,我看到: var deferred = $q.defer() …(and then from console inspection)… $q: Object {defer: function, reject: function, when: function, all: function} deferred: Object {resolve: function, reject: function, notify: function, promise: Object} deferred.promise: Object {then: function, catch: function, finally: function} 它提出了几个问题: $q.reject()和deferred.reject()什么区别? 何时使用每个? deferred.promise.then(successFn, errorFn)的catchFn与deferred.promise.catch(catchFn)的catchFn之间的关系是什么? 如果我有一堆嵌套的承诺,并发生错误,将最外面的catch()函数总是被调用? 如果其中一个嵌套的承诺也有一个catch函数定义呢? 该捕获是否会阻止最外层的catch执行? 谢谢。
我们的angular度应用程序有时不加载在铬金丝雀(版本41.0.2237.0金丝雀(64位))说 由于:RangeError:超出最大调用堆栈大小,无法实例化模块ngHintModules 但它加载罚款Firefox,铬(版本39.0.2171.71(64位)),Safari浏览器。 可能不确定是否有angular度与否。 完全错误 Uncaught Error: [$injector:modulerr] Failed to instantiate module ngHintModules due to: RangeError: Maximum call stack size exceeded at Array.forEach (native) at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2333:21) at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2384:5) at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7 at Array.forEach (native) at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2385:21) at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7 at Array.forEach (native) at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2385:21) at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7 注意:我在这里显示的错误是从 版本41.0.2237.0 canary(64位)
我有一个存储大量的客户端数据的问题,我不能决定哪种方式更好。 现在我正在使用AngularJS的cacheFactory,它工作正常,但所有的数据重新加载一个新的会话。 是否值得使用本地存储?
提供示例的$ destroy事件? 以下是来自http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy的参考文档 $摧毁() 从父范围中删除当前范围(及其所有子范围)。 删除意味着对$ digest()的调用将不再传播到当前范围及其子级。 去除也意味着当前范围有资格进行垃圾回收。 $ destroy()通常被诸如ngRepeat之类的指令用于pipe理循环的展开。 在范围被销毁之前,在这个范围上广播一个$ destroy事件。 应用程序代码可以注册一个$ destroy事件处理程序,使其有机会执行任何必要的清理。
我使用grunt / karma / phantomjs / jasmine来testing我的一个指令(angularjs)。 我的testing运行良好 describe('bar foo', function () { beforeEach(inject(function ($rootScope, $compile) { elm = angular.element('<img bar-foo src="img1.png"/>'); scope = $rootScope.$new(); $compile(elm)(); scope.$digest(); })); …. }); 但我确实得到这些404 WARN [web-server]: 404: /img1.png WARN [web-server]: 404: /img2.png … 虽然他们什么都不做,他们确实增加了对日志输出的噪音。 有没有办法来解决这个问题 ? (当然不会改变业力的logLevel,因为我确实想看到它们)