Questions tagged «angularjs»

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


3
ng-app指令的位置(html与正文)
我最近查看了使用angular构建的webapp的代码,发现它是使用ng-app="myModule"放置在<body>标签上的指令编写的。在学习angular时,我只看过它在<html>tag上使用,正如这里,此处和其教程中的角度文档所推荐的那样。 我自己进行了一些探索,并发现了SO问题,尤其是这个问题,同样也是这个问题,该问题讨论了如何为页面加载多个模块。但是,这种技术与我的情况不同,因为它涉及将ng-app放置在体内的元素上,并使用手动引导程序同时运行两个有角度的app。 据我所知,使用ng-appon <html>或的应用程序在运行时没有区别<body>。据我了解,它ng-app指定了角度应用程序的根,因此将其放置在角度应用程序上<body>会<head>超出角度的范围,但是我想不到这会影响事物的任何主要方式。所以我的问题是:放在ng-app这些标签中的一个而不是另一个上的技术区别是什么?
103 angularjs 

2
AngularJS:自动检测模型的变化
假设我想做一些事情,只要模型的值发生更改,就可以自动运行一些代码(例如将数据保存到服务器)。通过ng-change在每个控件上设置可能会更改模型的内容来做到这一点的唯一方法是吗? 即,使用视图,事情随着模型的改变而正确地改变,而不必明确地挂钩任何东西。是否存在可以运行保存到服务器的代码的类似物?就像是 myModel.on('change', function() { $.post("/my-url", ...); }); 就像您可能会看到像骨干一样。

7
AngularJS缩小最佳实践
我正在阅读 http://www.alexrothenberg.com/2013/02/11/the-magic-behind-angularjs-dependency-injection.html,事实证明,如果您缩小JavaScript的大小,angularjs依赖项注入会出现问题,所以我我想知道是否 var MyController = function($scope, $http) { $http.get('https://api.github.com/repos/angular/angular.js/commits') .then(function(response) { $scope.commits = response.data }) } 你应该使用 var MyController = ['$scope', '$http', function($scope, $http) { $http.get('https://api.github.com/repos/angular/angular.js/commits') .then(function(response) { $scope.commits = response.data }) }] 总之,我认为第二个片段是针对angularjs的旧版本的,但是.... 我是否应该始终使用注入方式(第二种方式)?

2
ngModel格式化程序和解析器
我以不同的形式发布了相同的问题,但没有人回答。我没有清楚了解angular js中Formatter和Parsers的功能。 根据定义,格式化程序和解析器都与我相似。也许我错了,因为我是这个angularjs的新手。 格式器定义 每当模型值更改时,作为管道执行的函数数组。依次调用每个函数,将值传递给下一个。用于格式化/转换值以在控件和验证中显示。 解析器定义 每当控件从DOM读取值时,作为管道执行的函数数组。依次调用每个函数,将值传递给下一个。用于清除/转换值以及进行验证。为了进行验证,解析器应使用$ setValidity()更新有效性状态,并为无效值返回undefined。 请通过一个简单的示例帮助我了解这两个功能。两者的简单说明将不胜感激。


7
单页应用程序中带有AngularJS的多个控制器
我想知道如何在单个页面应用程序中使用多个控制器。我试图找出答案,但发现的问题与我的非常相似,但是有很多不同的答案可以解决特定的问题,最终您在单个页面应用程序中不使用多个控制器。 那是因为在单个页面上使用多个控制器并不明智吗?还是只是不可能? 假设我已经在主页上有一个踢屁股图像轮播控制器,但是然后我学习了如何使用模态(比如说),为此我还需要一个新的控制器(或者需要控制器的其他任何东西)。那我该怎么办? 我看到了其他问题的一些答案,他们问的几乎和我差不多,而人们回答“ * OMG。为什么还要这么做,只要这样做...”。 最好的方法是什么,或者您怎么做? 编辑 你们中的许多人都回答只是声明两个控制器,然后使用ng-controller对其进行调用。我在下面使用这段代码,然后使用ng-controller调用MainCtrl。 app.config(function($routeProvider, $locationProvider) { $routeProvider .when('/', { templateUrl: "templates/main.html", controller:'MainCtrl', }) .otherwise({ template: 'does not exists' }); }); 如果不使用ng-controller,为什么还要在这里设置控制器?这就是让我困惑的地方。(我想您不能以这种方式添加两个控制器...)


14
使用UI-Router设置页面标题
我正在迁移基于AngularJS的应用程序以使用ui-router而不是内置路由。我将其配置如下所示 .config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/home'); $stateProvider .state('home', { url: '/home', templateUrl : 'views/home.html', data : { pageTitle: 'Home' } }) .state('about', { url: '/about', templateUrl : 'views/about.html', data : { pageTitle: 'About' } }) }); 如何使用pageTitle变量动态设置页面标题?使用内置的路由,我可以 $rootScope.$on("$routeChangeSuccess", function(currentRoute, previousRoute){ $rootScope.pageTitle = $route.current.data.pageTitle; }); 然后将变量绑定到HTML中,如下所示 <title ng-bind="$root.pageTitle"></title> 是否有类似事件可以挂接到ui-router上?我注意到有'onEnter'和'onExit'函数,但它们似乎与每个状态相关,将需要我重复代码以为每个状态设置$ rootScope变量。

4
AngularJS:什么是工厂?
我已经做了很多工作Angular.js,总的来说,我发现它是一个有趣而强大的框架。 我知道关于服务,工厂,提供者,价值的讨论很多,但是我对“什么是”仍然很困惑Factory。 在其他StackOverflow讨论中,工厂定义如下: 工厂工厂 语法:module.factory( 'factoryName', function );结果:在将factoryName声明为可注入参数时,将通过调用传递给module.factory的函数引用为您提供返回的值。 我发现很难理解这个解释,也并没有增加我对工厂的理解。 会有人有关于究竟什么是任何解释或现实生活中的例子份额Factory,以及为什么你应该代替使用它的Service,Provider或者其他? 更新资料 A service 拥有对任何对象的引用。 A factory 是一个返回任何对象的函数 A provider 是一个返回任何函数的函数 - 呼 -

3
了解ngRepeat的“跟踪依据”表达
我很难理解angularjs中ng-repeat表达式的轨迹是如何工作的。该文档非常稀缺:http : //docs.angularjs.org/api/ng/directive/ngRepeat 您能解释一下这两个代码片段在数据绑定和其他相关方面的区别吗? 与: track by $index <!--names is an array--> <div ng-repeat="(key, value) in names track by $index"> <input ng-model="value[key]"> </div> 没有(相同的输出) <!--names is an array--> <div ng-repeat="(key, value) in names"> <input ng-model="value[key]"> </div>

5
AngularJS:从模型数组中拼接模型元素时,不会更新ng-repeat列表
我有两个控制器,并使用app.factory函数在它们之间共享数据。 单击链接时,第一个控制器在模型数组(pluginsDisplayed)中添加一个小部件。将小部件推入数组,并将此更改反映到视图中(使用ng-repeat显示数组内容): <div ng-repeat="pluginD in pluginsDisplayed"> <div k2plugin pluginname="{{pluginD.name}}" pluginid="{{pluginD.id}}"></div> </div> 该小部件基于三个指令k2plugin,remove和resize构建。remove指令将跨度添加到k2plugin指令的模板。单击该范围时,将使用删除共享数组中的右侧元素Array.splice()。共享阵列已正确更新,但更改未反映在视图中。但是,当添加另一个元素时,在删除之后,视图将正确刷新,并且不会显示先前删除的元素。 我怎么了?您能解释一下为什么这行不通吗?有没有更好的方法可以完成我想对AngularJS进行的操作? 这是我的index.html: <!doctype html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"> </script> <script src="main.js"></script> </head> <body> <div ng-app="livePlugins"> <div ng-controller="pluginlistctrl"> <span>Add one of {{pluginList.length}} plugins</span> <li ng-repeat="plugin in pluginList"> <span><a href="" ng-click="add()">{{plugin.name}}</a></span> </li> </div> <div ng-controller="k2ctrl"> <div ng-repeat="pluginD in pluginsDisplayed"> <div …

2
在ng-repeat中单击ng时显示隐藏的div
我正在使用Angular.js应用程序,该应用程序可以过滤医疗程序的json文件。当使用ng-click单击(在同一页面上)过程名称时,我想显示每个过程的详细信息。这是我到目前为止的内容,.procedure-details div设置为显示:无: <ul class="procedures"> <li ng-repeat="procedure in procedures | filter:query | orderBy:orderProp"> <h4><a href="#" ng-click="?">{{procedure.definition}}</a></h4> <div class="procedure-details"> <p>Number of patient discharges: {{procedure.discharges}}</p> <p>Average amount covered by Medicare: {{procedure.covered}}</p> <p>Average total payments: {{procedure.payments}}</p> </div> </li> </ul> 我在角度上很新。有什么建议?

6
AngularJS:在单页​​应用程序中使用身份验证的基本示例
我是AngularJS的新手,并仔细阅读了他们的教程,并对此有所了解。 我为项目准备了一个后端,每个REST端点都需要进行身份验证。 我想做什么 a。)我想为我的项目准备一个页面http://myproject.com。 b。)用户在浏览器中单击URL后,根据用户是否登录,将在同一URL下向他显示主页/视图或登录页面/视图http://myproject.com。 c。)如果用户未登录,则填写该表单,服务器将设置一个USER_TOKENin会话,因此将根据以下身份验证对端点的所有其他请求USER_TOKEN 我的困惑 a。)如何使用AngularJS处理客户端身份验证?我在这里和这里看到了,但不明白如何使用它们 。b。)如何根据用户是否在同一URL下登录向用户显示不同的视图http://myproject.com 我是第一次使用angular.js,真的对如何开始感到困惑。非常感谢任何建议和/或资源。

9
“未知提供者:aProvider <-a”如何找到原始提供者?
当我加载AngularJS应用程序的缩小版本(通过UglifyJS)时,在控制台中出现以下错误: Unknown provider: aProvider &lt;- a 现在,我意识到这是由于变量名修饰。无损版本工作正常。但是,我确实想利用变量名修饰,因为它可以大大减少JS输出文件的大小。 出于这个原因,我们在构建过程中使用了ngmin,但即使过去它为我们提供了很好的服务,它似乎也无法解决该问题。 因此,要调试此问题,我在uglify grunt任务中启用了源映射。它们生成的很好,Chrome 确实从服务器加载了地图。但是,即使我觉得现在应该看到提供程序的原始名称,我仍然收到同样无助的错误消息。 如何让Chrome使用源地图来告诉我这里的问题是哪个提供程序,或者,如何用另一种方式找出提供程序?

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.