Questions tagged «angularjs»

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

5
MEAN.js和MEAN.io之间的区别
我想使用MEAN JavaScript Stack,但我注意到有两个不同的堆栈,它们都有自己的网站和安装方法:mean.js和mean.io。因此,我问自己一个问题:“我使用哪个?”。 因此,为了回答这个问题,我问社区是否可以解释这两者之间的区别?以及是否有利弊?因为它们看起来和我非常相似。

18
如何重新加载当前状态?
我正在使用Angular UI Router,想重新加载当前状态并刷新所有数据/为当前状态及其父级重新运行控制器。 我有3个状态级别:directory.organisations.details directory.organisations包含一个带有组织列表的表。单击表中的一个项目将加载$ directoryParams传递该项目的ID的directory.organisations.details详细信息。因此,在详细信息状态下,我将加载该项目的详细信息,对其进行编辑,然后保存数据。到目前为止一切都很好。 现在,我需要重新加载此状态并刷新所有数据。 我努力了: $state.transitionTo('directory.organisations'); 我猜这是因为它的父级状态,但不会重新加载控制器,因为路径没有改变。理想情况下,我只想保留在directory.organisations.details状态并刷新父级中的所有数据。 我也尝试过: $state.reload() 我已经在API WIKI上以$ state.reload看到了这一点(“(现在正在重新实例化控制器的错误,即将修复)。” 任何帮助,将不胜感激?

6
如何在AngularJS中的自定义指令*中使用自己的作用域*访问父作用域?
我正在寻找访问指令中“父”范围的任何方式。范围,超越,要求,从上方传入变量(或范围本身)的任何组合,等等。我完全愿意向后弯腰,但我想避免某些完全不可靠或无法维护的事情。例如,我知道我现在可以通过$scope从preLink参数中获取并对其$sibling范围进行迭代以找到概念上的“父级” 来做到这一点。 我真正想要的是能够$watch在父作用域中表达。如果我可以做到,那么我可以在这里完成我想做的事情: AngularJS-如何用变量渲染局部变量? 重要说明是,该指令必须在同一父范围内可重复使用。因此,默认行为(作用域:false)对我不起作用。我需要为指令的每个实例设置一个单独的作用域,然后需要$watch一个位于父作用域中的变量。 一个代码示例价值1000个字,因此: app.directive('watchingMyParentScope', function() { return { require: /* ? */, scope: /* ? */, transclude: /* ? */, controller: /* ? */, compile: function(el,attr,trans) { // Can I get the $parent from the transclusion function somehow? return { pre: function($s, $e, $a, parentControl) { // …

15
AngularJS:如何在控制器之间传递变量?
我有两个Angular控制器: function Ctrl1($scope) { $scope.prop1 = "First"; } function Ctrl2($scope) { $scope.prop2 = "Second"; $scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally } 我无法使用Ctrl1内部,Ctrl2因为它是未定义的。但是,如果我尝试像这样传递它… function Ctrl2($scope, Ctrl1) { $scope.prop2 = "Second"; $scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do …

6
在嵌套的ng-repeat中传递2个$ index值
因此,我在另一个ng-repeat中嵌套了一个ng-repeat,以构建导航菜单。在<li>内部ng-repeat循环的每个循环上,我都设置了一个ng-click,它通过传入$ index来调用该菜单项的相关控制器,以使应用知道我们需要哪个。但是,我还需要从外部ng-repeat中传递$ index,以便应用程序知道我们在哪个部分以及哪个教程中。 <ul ng-repeat="section in sections"> <li class="section_title {{section.active}}" > {{section.name}} </li> <ul> <li class="tutorial_title {{tutorial.active}}" ng-click="loadFromMenu($index)" ng-repeat="tutorial in section.tutorials"> {{tutorial.name}} </li> </ul> </ul> 这是一个傻瓜http://plnkr.co/edit/bJUhI9oGEQIql9tahIJN?p=preview

2
找不到angular.min.js.map,究竟是什么?
当我加载页面并检查chrome控制台时,发现以下错误: 角文件到底是什么? 我确实引用了angular.min.js,但未引用angular.min.js.map。顺便说一下,我正在使用angular 1.2 rc版本,当我切换到此版本时,我才刚刚开始看到这些错误。 ERRORS: GET http://localhost:44786/Scripts/angular-route.min.js.map 404 (Not Found) :44786/Scripts/angular-route.min.js.map:1 GET http://localhost:44786/Scripts/angular-animate.min.js.map 404 (Not Found) :44786/Scripts/angular-animate.min.js.map:1 GET http://localhost:44786/Scripts/angular-resource.min.js.map 404 (Not Found) :44786/Scripts/angular-resource.min.js.map:1 GET http://localhost:44786/Scripts/angular.min.js.map 404 (Not Found) :44786/Scripts/angular.min.js.map:1
321 angularjs 

13
延迟AngularJS路线更改,直到加载模型以防止闪烁
我想知道AngularJS是否有一种方法(类似于Gmail)将显示新路线的时间延迟到使用各自服务获取每个模型及其数据之后。 例如,如果有一个ProjectsController列出所有项目project_index.html的模板,并且是显示这些项目的模板,则Project.query()在显示新页面之前将完全获取该模板。 在此之前,旧页面仍将继续显示(例如,如果我正在浏览另一个页面,然后决定查看此Project索引)。

10
如何在angularjs中深入观察数组?
我的范围内有一个对象数组,我想观察每个对象的所有值。 这是我的代码: function TodoCtrl($scope) { $scope.columns = [ { field:'title', displayName: 'TITLE'}, { field: 'content', displayName: 'CONTENT' } ]; $scope.$watch('columns', function(newVal) { alert('columns changed'); }); } 但是,当我修改值时,例如,我更改TITLE为TITLE2,则alert('columns changed')永不弹出。 如何深入观察数组中的对象? 有一个现场演示:http : //jsfiddle.net/SYx9b/
320 angularjs  watch 

27
如何在AngularJS中处理锚点哈希链接
你们中有谁知道如何在AngularJS中很好地处理锚点哈希链接吗? 我为简单的常见问题解答页面添加了以下标记 <a href="#faq-1">Question 1</a> <a href="#faq-2">Question 2</a> <a href="#faq-3">Question 3</a> <h3 id="faq-1">Question 1</h3> <h3 id="faq-2">Question 2</h3> <h3 id="fa1-3">Question 3</h3> 单击上面的任何链接时,AngularJS会拦截并将我路由到一个完全不同的页面(在我的情况下是404页,因为没有路由与这些链接匹配。) 我的第一个想法是创建一个匹配“ / faq /:chapter ” 的路由,并在相应的控制器中检查$routeParams.chapter匹配的元素之后,然后使用jQuery向下滚动到它。 但是随后AngularJS再次对我大喊大叫,无论如何仍只是滚动到页面顶部。 那么,这里有人在过去做过类似的事情并且知道解决方案吗? 编辑:切换到html5Mode应该可以解决我的问题,但是无论如何我们都必须支持IE8 +,所以我担心这不是一个可以接受的解决方案:/

8
$观看对象
我想监视字典中的更改,但是由于某种原因,未调用监视回调。 这是我使用的控制器: function MyController($scope) { $scope.form = { name: 'my name', surname: 'surname' } $scope.$watch('form', function(newVal, oldVal){ console.log('changed'); }); } 这是小提琴。 我希望每次更改名称或姓氏时都会触发$ watch回调,但是不会发生。 正确的方法是什么?

6
如何创建单独的AngularJS控制器文件?
我将所有AngularJS控制器都放在一个文件controllers.js中。该文件的结构如下: angular.module('myApp.controllers', []) .controller('Ctrl1', ['$scope', '$http', function($scope, $http) { }]) .controller('Ctrl2', ['$scope', '$http', function($scope, $http) } }]) 我想做的是将Ctrl1和Ctrl2放入单独的文件中。然后,我会将这两个文件都包含在index.html中,但是应该如何构造呢?我试图做这样的事情,它在网络浏览器控制台中抛出一个错误,提示找不到控制器。有什么提示吗? 我搜索了StackOverflow,发现了类似的问题-但是,此语法在Angular的顶部使用了不同的框架(CoffeeScript),因此我无法遵循。 AngularJS:如何在多个文件中创建控制器

5
从then()返回值或Promise.resolve有什么区别
之间有什么区别? new Promise(function(res, rej) { res("aaa"); }) .then(function(result) { return "bbb"; }) .then(function(result) { console.log(result); }); 运行代码段隐藏结果展开摘要 和这个: new Promise(function(res, rej) { res("aaa"); }) .then(function(result) { return Promise.resolve("bbb"); }) .then(function(result) { console.log(result); }); 运行代码段隐藏结果展开摘要 我问,因为我得到了不同的行为使用Angular和$ http服务与链接.then()。因此,代码太多了,因此首先是上面的示例。

10
获取通过ng-change选择的ng对象
给定以下选择元素 <select ng-options="size.code as size.name for size in sizes " ng-model="item.size.code" ng-change="update(MAGIC_THING)"> </select> 有没有办法使MAGIC_THING等于当前选择的大小,因此我可以访问size.name并size.code在我的控制器中? size.code影响了应用程序的许多其他部分(图像网址等),但是当的ng-model item.size.code更新时,item.size.name面向用户的东西也需要更新。我认为执行此操作的正确方法是捕获更改事件并在控制器内部设置值,但是我不确定可以将哪些内容传递给update以获取正确的值。 如果这完全是错误的解决方法,我很想知道正确的方法。
313 angularjs 

11
在AngularJS中读取查询参数的最简洁方法是什么?
我想使用AngularJS读取URL查询参数的值。我正在使用以下URL访问HTML: http://127.0.0.1:8080/test.html?target=bob 正如预期的那样,location.search是"?target=bob"。为了访问target的值,我在网络上找到了各种示例,但是在AngularJS 1.0.0rc10中它们都不起作用。特别是以下所有内容undefined: $location.search.target $location.search['target'] $location.search()['target'] 有人知道什么有用吗?(我将其$location用作控制器的参数) 更新: 我在下面发布了一个解决方案,但是我并不完全满意。开发人员指南:Angular Services:使用$ location中的文档陈述了以下内容$location: 什么时候应该使用$ location? 任何时候您的应用程序需要对当前URL的更改做出反应,或者您想在浏览器中更改当前URL。 对于我的情况,我的页面将从带有查询参数的外部网页打开,因此,我本身并不是在“响应当前URL的更改”。因此,可能$location不是适合该工作的工具(有关丑陋的详细信息,请参见下面的答案)。因此,我已将问题的标题从“如何使用$ location在AngularJS中读取查询参数?”中更改。“在AngularJS中读取查询参数的最简洁方法是什么?”。显然,我可以只使用javascript和正则表达式进行解析location.search,但是对如此基本的内容进行低级配置确实会冒犯我的程序员。 所以:有没有$location比我在回答中更好的使用方法,还是有简洁的替代方法?
312 angularjs  ngroute 

23
如何在Angular.js选择框中使用默认选项
我已经搜索过Google,但找不到任何东西。 我有这个代码。 <select ng-model="somethingHere" ng-options="option.value as option.name for option in options" ></select> 有这样的数据 options = [{ name: 'Something Cool', value: 'something-cool-value' }, { name: 'Something Else', value: 'something-else-value' }]; 输出是这样的。 <select ng-model="somethingHere" ng-options="option.value as option.name for option in options" class="ng-pristine ng-valid"> <option value="?" selected="selected"></option> <option value="0">Something Cool</option> <option value="1">Something Else</option> …

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.