Questions tagged «angularjs»

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

5
AngularJS-如何以编程方式创建新的隔离范围?
我想用Angular.factory创建一个AlertFactory。我定义了一个HTML模板,如下所示 var template = "<h1>{{title}}</h1>"; 标题由调用控制器提供,并按以下方式应用 var compiled = $compile(template)(scope); body.append(compiled); 那么,如何将隔离范围从控制器传递到工厂?我在控制器中遵循代码 AlertFactory.open($scope); 但是$ scope是全局控制器作用域变量。我只想为带有title属性的工厂传递一个小的范围。 谢谢。

5
如果外部应用程序更改了持久模型(服务器数据库),AngularJS可以自动更新视图吗?
我刚刚开始熟悉AngularJS,但我想构建一个Web视图,该视图具有一个视图,当服务器端数据库中发生某些更改时,该视图将为用户实时自动更新(不刷新)。 AngularJS可以自动为我处理(大部分)吗?如果是这样,起作用的基本机制是什么? 例如,您是否以某种方式设置AngularJS来定期轮询数据库以查找“模型”更改?还是使用某种类似Comet的机制来通知AngularJS客户端代码模型已更改? 在我的应用程序中,挑战在于其他(非Web)服务器端软件有时会更新数据库。但是,这个问题同样适用于纯Web应用程序,在该Web应用程序中,您可能有多个客户端通过AngularJS Web客户端更改数据库,并且每个客户端都需要在其中一个更改数据库(模型)时进行更新。

4
如何在AngularJS中对隔离范围指令进行单元测试
在AngularJS中对隔离范围进行单元测试的好方法是什么 JSFiddle显示单元测试 指令段 scope: {name: '=myGreet'}, link: function (scope, element, attrs) { //show the initial state greet(element, scope[attrs.myGreet]); //listen for changes in the model scope.$watch(attrs.myGreet, function (name) { greet(element, name); }); } 我想,以确保指令监听的变化-这确实不是工作,一个孤立的范围: it('should watch for changes in the model', function () { var elm; //arrange spyOn(scope, '$watch'); //act elm …

2
使用动态模块集开发AngularJS应用
我有一个具有复杂布局的应用程序,用户可以放置(拖放)小部件(通过从一组预定义的100多个小部件中进行选择),其中每个小部件都是显示数据集(使用REST调用获取)的自定义实现。以一种特定的方式。我已经阅读了大量的博客文章,stackoverflow问题和AngularJS官方文档,但是我不知道应该如何设计应用程序来满足那里的需求。查看演示应用程序,有一个模块(ng-app),当在.js文件中构建该模块时,相关模块被声明为其依赖项,但是我有大量的小部件,以某种方式建议不要全部描述它们那里。我需要以下问题的建议: 我应该如何设计我的应用程序和小部件-我应该有一个单独的AngularJS模块还是每个小部件都应该是主模块的指令? 如果我将小部件设计为指令,是否可以在指令中定义依赖关系。也就是说,我的指令在其实现中使用ng-calender? 如果我将每个窗口小部件设计为单独的模块,是否可以动态添加窗口小部件模块作为对主模块的依赖关系? 我应该如何设计控制器-每个小部件一个控制器? 如果视图中有多个相同类型的小部件,应该如何区分状态(范围)? 有使用AngularJS设计可重用小部件的最佳实践吗? 编辑 有用的参考资料: ocLazyLoad-AngularJS的出色的延迟加载库 种子项目-模块+路线更改的延迟加载(ES6,systemjs,ocLazyLoad) AngularJS中的延迟加载 使用AngularJS和RequireJS动态加载控制器和视图 在应用程序引导后使用RequireJS加载AngularJS组件 关于在GitHub上延迟加载AngularJS资源的演示项目 按需负载项目 仅在需要时动态注入模块 Angular文章中的另一个延迟加载 大型AngularJS和JavaScript应用程序中的代码组织

9
每当打开/显示视图时运行控制器功能
我正在构建一个带有angular + ionic的应用程序,该应用程序在底部使用一个经典的三按钮菜单,其中包含三个ion-tabs。用户单击选项卡时,该模板通过ui-router打开。 我有这样的状态: $stateProvider .state('other', { url: "/other", abstract: true, templateUrl: "templates/other/other.html" }) 在模板中,我执行以下操作: <ion-nav-view name="other" ng-init="doSomething()"></ion-nav-view> 我知道我可以在控制器中编写doSomething()函数,并在那里手动调用它。那给了我同样的问题。每当有人打开该视图时,我似乎都无法弄清楚如何调用doSomething()函数。 现在,可以很好地调用doSomething()函数,但是仅在用户第一次打开视图/选项卡时才可以。每当用户打开该视图或标签时,我都想调用一个函数(以更新地理位置)。 什么是实现该目标的正确方法? 感谢您的帮助!

7
AngularJS $ state新标签中的打开链接
我正在尝试使用$ state.go函数实现“在新标签页中打开链接”功能。如果有这样的东西,那就太棒了: $state.go('routeHere', { parameter1 : "parameter" }, { reload : true, newtab : true // or smth like target : "_blank" }); 有什么办法可以使用AngularJS做到这一点?

13
触发对Angular Form提交中的所有字段的验证
我正在使用这种方法:http : //plnkr.co/edit/A6gvyoXbBd2kfToPmiiA?p=preview仅用于验证模糊字段。效果很好,但是当用户单击“提交”按钮(不是真正的提交,而是对函数的data-ng-click调用)时,我也想验证它们(并显示这些字段的错误,如果有的话) 单击该按钮时,是否有某种方法可以再次触发所有字段的验证?
81 forms  angularjs 


2
通过布尔属性用“ track by”过滤Angular 1.2 ng-repeat
我正在尝试根据布尔属性的值过滤一些列表项,但是无论我做什么,总会显示整个列表。我尝试过的一些东西已经坏掉了,什么也没显示,但这既不存在也不存在。我无法按需进行过滤: $scope.attendees = [ {"firstname":"Steve", "lastname":"Jobs", "arrived":true, "id":1} ,{"firstname":"Michelle", "lastname":"Jobs", "arrived":false, "id":2} ,{"firstname":"Adam", "lastname":"Smith", "arrived":true, "id":3} ,{"firstname":"Megan", "lastname":"Smith", "arrived":false, "id":4} ,{"firstname":"Dylan", "lastname":"Smith", "arrived":false, "id":5} ,{"firstname":"Ethan", "lastname":"Smith", "arrived":false, "id":6} ]; 使用以下ng-repeat过滤: <ul> <li ng-repeat="person in attendees track by person.id | filter:arrived:'false'"> {{person.lastname}}, {{person.firstname}} </li> </ul> 我觉得我已经尝试了所有可以找到引用的排列,其中大部分来自各种StackOverflow搜索结果: filter:'arrived' filter:arrived filter:'person.arrived' filter:person.arrived filter:{arrived:true} …

6
AngularJS未定义或为null
当我编写手表处理函数时,我会在undefined和上检查newVal参数null。为什么AngularJS具有这种行为,却没有特定的实用程序方法?所以有angular.isUndefined但没有angular.isUndefinedOrNull。手动实现并不难,但是如何扩展角度以在每个控制器中具有该功能?Tnx。 编辑: 这个例子: $scope.$watch("model", function(newVal) { if (angular.isUndefined(newVal) || newVal == null) return; // do somethings with newVal } 处理这种方法是否普遍接受? 编辑2: JSFiddle示例(http://jsfiddle.net/ubA9r/): <div ng-app="App"> <div ng-controller="MainCtrl"> <select ng-model="model" ng-options="m for m in models"> <option value="" class="ng-binding">Choose model</option> </select> {{model}} </div> </div> var app = angular.module("App", []); var MainCtrl = function($scope) …


7
隐藏在AngularJs中的可见性?
<button id="tagBtnId" name="TagsFilter" ng-show="disableTagButton">Tags</button> ng-show应用display: none或display: block属性,但我想应用visibility: hidden和visibility: visible属性。
80 html  css  angularjs 

4
了解Angular.js控制器参数
我刚刚开始学习Angular.js,并且一直在Angular主页上的“连接后端”示例中查看project.js。 我对控制器功能中的参数感到困惑: function ListCtrl($scope, Projects) { ... } function CreateCtrl($scope, $location, $timeout, Projects) { ... } function EditCtrl($scope, $location, $routeParams, angularFire, fbURL) { angularFire(fbURL + $routeParams.projectId, $scope, 'remote', {}). then(function() { ... }); } 这些控制器函数在routeProvider中调用,但是没有给出任何参数。 $routeProvider. when('/', {controller:ListCtrl, templateUrl:'list.html'}). when('/edit/:projectId', {controller:EditCtrl, templateUrl:'detail.html'}). when('/new', {controller:CreateCtrl, templateUrl:'detail.html'}). otherwise({redirectTo:'/'}); }); 我能找到到目前为止,这可能解释发生了什么事情的唯一的事情是“注入服务整合到控制器”,这说明$location,$timeout而不是参数的方法angularFire和fbURL。 我的具体问题是: 控制器参数可以是什么? …
80 angularjs 

5
Angular UI模式的范围问题
我在理解/使用角度UI模式的范围时遇到麻烦。 虽然这里没有立即显示出来,但我已经正确地设置了模块和所有内容(据我所知),但是这些代码示例尤其是在我发现错误的地方。 index.html(重要部分) <div class="btn-group"> <button class="btn dropdown-toggle btn-mini" data-toggle="dropdown"> Actions <span class="caret"></span> </button> <ul class="dropdown-menu pull-right text-left"> <li><a ng-click="addSimpleGroup()">Add Simple</a></li> <li><a ng-click="open()">Add Custom</a></li> <li class="divider"></li> <li><a ng-click="doBulkDelete()">Remove Selected</a></li> </ul> </div> Controller.js(同样是重要部分) MyApp.controller('AppListCtrl', function($scope, $modal){ $scope.name = 'New Name'; $scope.groupType = 'New Type'; $scope.open = function(){ var modalInstance = $modal.open({ …

11
(Angular-ui-router)在解析过程中显示加载动画
这是一个两部分的问题: 我在加载控制器之前使用$ stateProvider.state()中的resolve属性来获取某些服务器数据。如何在此过程中显示加载动画? 我有一些子状态也利用了resolve属性。问题是ui-router似乎要在加载任何控制器之前完成所有解析。有什么方法可以让父控制器在解析解决后加载,而不必等待所有子解析都加载?对此的答案可能也将解决第一个问题。

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.