Questions tagged «angularjs»

用于有关开源JavaScript框架AngularJS(1.x)的问题。不要将此标签用于Angular 2或更高版本;而是使用[angular]标签。

5
AngularJS文件夹结构
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 改善这个问题 如何为大型可扩展的AngularJS应用程序布置文件夹结构?
186 angularjs 

5
在观看AngularJS中的模型更改时如何忽略初始负载?
我有一个网页可以用作单个实体的编辑器,它位于$ scope.fieldcontainer属性中的深层图形中。从REST API获得响应(通过$ resource)后,将手表添加到“ fieldcontainer”。我正在使用此手表来检测页面/实体是否为“脏”。现在,我正在使“保存”按钮弹跳,但实际上我想使“保存”按钮不可见,直到用户弄脏模型为止。 我得到的只是手表的一个触发器,我认为这是在发生,因为.fieldcontainer = ...分配是在创建手表后立即进行的。我本来只是想使用“ dirtyCount”属性来吸收最初的错误警报,但是感觉很hacky……而且我认为必须有一种“ Angular惯用的”方式来处理此问题-我不是唯一的人用手表检测脏模型。 这是我设置手表的代码: $scope.fieldcontainer = Message.get({id: $scope.entityId }, function(message,headers) { $scope.$watch('fieldcontainer', function() { console.log("model is dirty."); if ($scope.visibility.saveButton) { $('#saveMessageButtonRow').effect("bounce", { times:5, direction: 'right' }, 300); } }, true); }); 我一直在想,有一种比使用“ if(dirtyCount> 0)”保护我的“ UI污染”代码更干净的方法了……

12
AngularJS:AngularJS渲染模板后如何运行其他代码?
我在DOM中有一个Angular模板。当我的控制器从服务中获取新数据时,它将更新$ scope中的模型,然后重新呈现模板。到目前为止一切都很好。 问题是,在模板重新呈现并且在DOM中(在本例中为jQuery插件)之后,我还需要做一些额外的工作。 似乎应该有一个事件要听,例如AfterRender,但我找不到任何此类事件。也许一条指令是一个可行的方法,但是它似乎还为时过早。 这是一个概述我的问题的jsFiddle:Fiddle-AngularIssue ==更新== 基于有用的评论,我相应地切换到了处理DOM操作的指令,并在指令内部实现了$ watch模型。但是,我仍然遇到相同的基本问题。$ watch事件中的代码在模板被编译并插入DOM之前触发,因此,jQuery插件始终在评估一个空表。 有趣的是,如果我删除了异步调用,那么整个程序就可以正常工作,因此这是朝正确方向迈出的一步。 这是我更新的小提琴,以反映这些更改:http : //jsfiddle.net/uNREn/12/

30
找不到模块“ node-sass”中的错误
配置:macOS High Sierra,版本10.13.2,节点:v8.1.2 npm:5.0.3在我的angularjs项目中运行npm start时,出现以下错误: ERROR in Cannot find module 'node-sass' 之后,我运行: npm i node-sass 现在我得到这个错误: gyp: No Xcode or CLT version detected! gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 为什么npm不安装node-sass?如何安装node-sass?

4
使用ng-include时失去作用域
我有这个模块的路线: var mainModule = angular.module('lpConnect', []). config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/home', {template:'views/home.html', controller:HomeCtrl}). when('/admin', {template:'views/admin.html', controller:AdminCtrl}). otherwise({redirectTo:'/connect'}); }]); 原始HTML: <div ng-include src="views.partial1"></div> partial1 HTML: <form ng-submit="addLine()"> <input type="text" ng-model="lineText" size="30" placeholder="Type your message here"> </form> HomeCtrl: function HomeCtrl($scope, $location, $window, $http, Common) { ... $scope.views = { partial1:"views/partial1.html" }; …

5
什么是AngularJS指令?
我花了很多时间阅读AngularJS文档和一些教程,对于文档的难懂性,我感到很惊讶。 我有一个简单的,可以回答的问题,对于其他希望使用AngularJS的人也可能有用: 什么是AngularJS指令? 某个地方应该有一个简单,精确的指令定义,但是AngularJS网站提供了这些令人惊讶的无用定义: 在主页上: 指令是AngularJS中可用的独特而强大的功能。指令可让您发明特定于您的应用程序的新HTML语法。 在开发人员文档中: 指令是教授HTML新技巧的一种方法。在DOM期间,编译指令将与HTML匹配并执行。这允许指令注册行为或转换DOM。 具有讽刺意味的是,有一系列关于指令的讨论,似乎是在假定读者已经理解了它们是什么。 任何人都可以提供什么是指令的精确定义以供参考: 它是什么(请参阅jQuery的清晰定义作为示例) 打算解决哪些实际问题和情况 它体现了什么设计模式,或者如何适合AngularJS的MVC / MVW任务。

1
选择自举vs材质设计[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使它成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 我将使用AngularJS(完整堆栈)开始新项目。我的项目需要及时响应,我将从头开始创建模板。 因此,我需要建议是否选择Bootstrap 3(带角度指令)或布局的材料设计? 如果有人可以列出两者的优缺点,我将不胜感激。

9
取消嵌套ng-click调用之间的事件传播的最佳方法是什么?
这是一个例子。假设我想像许多网站一样覆盖图片。因此,当您单击缩略图时,整个窗口上方会出现黑色叠加层,并且较大的图像版本位于其中。单击黑色覆盖将其关闭;单击该图像将调用显示下一张图像的函数。 的HTML: <div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()"> <img src="http://some_src" ng-click="nextImage()"/> </div> JavaScript: function OverlayCtrl($scope) { $scope.hideOverlay = function() { // Some code to hdie the overlay } $scope.nextImage = function() { // Some code to find and display the next image } } 问题是,这种设置,如果你点击图片,都nextImage()与hideOverlay()被调用。但是我想要的只是nextImage()被称为。 我知道您可以使用以下nextImage()功能捕获和取消事件: if (window.event) { window.event.stopPropagation(); } ...但是我想知道是否有更好的AngularJS方法,不需要我用此代码段在叠加层内的元素上添加所有函数的前缀。
180 angularjs 


7
从旧版代码调用AngularJS
我正在使用AngularJS来构建与旧版Flex应用程序进行交互的HTML控件。来自Flex应用程序的所有回调都必须附加到DOM窗口。 例如(在AS3中) ExternalInterface.call("save", data); 将会通知 window.save = function(data){ // want to update a service // or dispatch an event here... } 我想从JS调整大小函数中调度一个控制器可以听到的事件。似乎创建服务是必经之路。您可以从AngularJS外部更新服务吗?控制器可以侦听来自服务的事件吗?在一个实验中(单击以拨弄小提琴),我确实可以访问服务,但更新服务的数据未反映在视图中(在示例中<option>应将添加到<select>)。 谢谢!

13
页面内的AngularJS Multiple ng-app
我刚刚开始学习Angular JS并创建了一些基本示例,但是我仍然遇到以下问题。 我已经创建了2个模块和2个控制器。 shoppingCart -> ShoppingCartController namesList -> NamesController 每个控制器都有关联的视图。第一个视图渲染良好,但第二个视图未渲染。没有错误。 http://jsfiddle.net/ep2sQ/ 请帮我解决这个问题。 也有可能在View中添加控制台以检查从Controller传递了哪些值。 例如在下面的div中,我们可以添加console.log并输出控制器值 <div ng-app="shoppingCart" ng-controller="ShoppingCartController"> </div>
180 angularjs 


2
AngularJS中的$ evalAsync和$ timeout有什么区别?
我已经使用AngularJS了一段时间,并且发现需要不时使用$ timeout(似乎通常是初始化jQuery插件)。 最近,我一直在尝试更好地和更深入地了解摘要循环,并遇到了$ evalAsync函数。 似乎该函数产生与相似的结果$timeout,只是您不给它延迟。每次使用时,$timeout它的延迟都为0,所以现在我想知道是否应该使用它$evalAsync。 两者之间有根本区别吗?您会在哪种情况下使用另一种情况?我想更好地了解何时使用哪个。

9
在AngularJS中使用逗号作为列表分隔符
我需要创建一个逗号分隔的项目列表: <li ng-repeat="friend in friends"> <b ng-repeat="email in friend.email">{{email}}{{$last ? '' : ', '}}</b>... </li> 根据AngularJS文档,表达式中不允许使用控制流语句。这就是为什么我{{$last ? '' : ', '}}无法正常工作的原因。 有没有其他方法可以创建逗号分隔的列表? 编辑1 比以下更简单: <span ng-show="!$last">, </span>

4
$ location /在html5和hashbang模式之间切换/链接重写
我给人的印象是Angular会重写出现在临时模板中定位标记的href属性中的URL,以便无论在html5模式还是hashbang模式下它们都可以工作。定位服务的文档似乎说HTML链接重写可以解决hashbang的问题。因此,我希望当不在HTML5模式下时,将插入哈希,而在HTML5模式下,则不会。 但是,似乎没有进行任何重写。以下示例不允许我仅更改模式。应用程序中的所有链接都需要手工重写(或在运行时从变量派生。我是否需要根据模式手动重写所有URL? 我没有看到在Angular 1.0.6、1.1.4或1.1.3中进行任何客户端url重写。似乎所有的href值都必须在#/之前添加为hashbang模式,在//之前添加为html5模式。 是否需要一些配置才能引起重写?我在读文档吗?还在做傻事吗? 这是一个小例子: <head> <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.js"></script> </head> <body> <div ng-view></div> <script> angular.module('sample', []) .config( ['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { //commenting out this line (switching to hashbang mode) breaks the app //-- unless # is added to the templates $locationProvider.html5Mode(true); $routeProvider.when('/', { template: 'this is home. go …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.