Tag: angularjs

用标准networking技术替代angular度

我正在开发一个项目,在最新的浏览器上使用ECMA 6,这个产品将在1.5年内发货。 所以我们认为为什么不使用Web Components现在Angular 2不可用(这将是ECMA 6)。 而当我们在这个时候,我们可以完全取代Angular而不必回到石器时代吗? 如何取代Angular? 有一个叫做youmightnotneedjquery.com的网站,基本上是关于现代浏览器实际上是如何使用jQuery传统上的大多数东西的。 我有兴趣看到类似Angular的东西。 我们主要使用四个angular度特征。 我有什么替代他们的select? Angular Directives – > Web组件 Angular Modules – > ECMA 6模块 (不完全一样的东西) 有angular度的路线 – > angular度双向数据绑定 – > PS。 我们不想用类似Backbone或Ember的东西代替Angular。 我们希望用标准的networking技术取代它,但是如果我们必须使用小工具填补这个空白,我们会考虑它。

与AngularJS深度合并对象

通常对于浅拷贝对象,我会使用angular.extend() 这是一个例子: var object1 = { "key": "abc123def456", "message": { "subject": "Has a Question", "from": "example1@example.com", "to": "example2@example.com" } }; var object2 = { "key": "00700916391" }; console.log(angular.extend({}, object1, object2)); 会给我们: { "key": "00700916391", "message": { "subject": "Has a Question", "from": "example1@example.com", "to": "example2@example.com" } } 但是,如果我想合并对象,以便父键不会被子对象覆盖,该怎么办: var object1 = { "key": "abc123def456", "message": { […]

注射器已经创build。 不能注册一个模块

我是Angular JS的新蜜蜂,并试图以适当的TDD方式制造出一些东西,但在testing中我得到这个错误: 注射器已经创build,不能注册一个模块! 这是我正在谈论的服务。 bookCatalogApp.service('authorService', ["$resource", "$q", function($resource, $q){ var Author =$resource('/book-catalog/author/all',{},{ getAll : { method: 'GET', isArray: true} }); var authorService = {}; authorService.assignAuthors = function(data){ authorService.allAuthors = data; }; authorService.getAll = function(){ if (authorService.allAuthors) return {then: function(callback){callback(authorService.allAuthors)}} var deferred = $q.defer(); Author.getAll(function(data){ deferred.resolve(data); authorService.assignAuthors(data); }); return deferred.promise; }; return authorService; }]); 这是对上述服务的testing describe("Author […]

如何清除angular度数组

$scope.itemarray = ['A', 'B', 'C']; 这将清除数组,但用户界面不会被更新。 $scope.itemarray = []; 这工作正常! 为什么? $scope.itemarray.length = 0;

AngularJS控制器unit testing – 注入服务

一个关于AngularJSunit testing的希望简单的问题。 我有一个控制器使用一个简单的服务(改编自angular种子项目) services.js: angular.module('myApp.services', []).value('version', '0.1'); controllers.js: function MyCtrl1($s, version) { $s.version = version; } MyCtrl1.$inject = ["$scope","version"]; 这工作很好,我的应用程序。 但是,在unit testing框架工作中,我无法创build控制器。 我不知道如何注入'版本'服务(或创build实例),并将其传递给$ controller()工厂 – 我想这就是我想要做的?! 这是裸骨的规格: controllerSpec.js : beforeEach(inject(function($rootScope, $controller) { scope = $rootScope.$new(); // how about version service? ctrl = $controller(MyCtrl1, {$scope: scope, /* version: <where from?> */}); })); it('Version should be 0.1 […]

如何在AngularJS中注册我自己的事件监听器?

如何在AngularJS应用程序中注册我自己的事件监听器? 具体来说,我正在尝试注册拖放(DND)侦听器,以便在将某些东西拖放到我的视图的新位置时,AngularJS将重新计算业务逻辑并更新模型,然后更新视图。

Angularjs:获取控制器中的元素

我是angularjs的新手,我知道$scope表示控制器和视图之间的连接,但是除了寻找class="ng-scope"来获得范围元素,还有一种方法,我的意思是这样的: function someControllerFunc($scope){ $scope.element; } 我知道同一个控制器可以分配给多个范围,所以也许这是不可能的。

AngularJS:如何从UI网格单元格模板访问范围?

如何从ui-grid单元格模板访问$scope ? 这是我的控制器代码: app.controller('MainCtrl', ['$scope', function ($scope) { // i want to reference this from a cell template. $scope.world = function() { return 'world'; }; $scope.gridOptions = { data: [ { id: "item1" }, { id: "item2" } ], columnDefs: [ { field: 'id', // world() is never called and is not displayed. cellTemplate: '<div>{{ […]

什么是ng-repeat指令的优先级可以改变它?

Angular文档说: DOM的编译是通过调用$ compile()方法来完成的。 该方法遍历DOM并匹配指令。 如果find匹配项,则将其添加到与给定DOM元素关联的指令列表中。 一旦给定DOM元素的所有指令都被识别出来,它们将按照优先级进行sorting,并执行它们的compile()函数。 我相信ng-repeat指令比自定义指令具有更低的优先级,在某些使用情况下(如dynamic标识和自定义指令) 。 angular度允许修改指令的优先级来select一个之前的执行吗?

在SELECT中的AngularJs – ng-model

的jsfiddle 问题: 我的页面中有一个SELECT元素,用ng-repeat填充。 它也有一个具有默认值的ng-model 。 当我改变的价值, ng-model适应,没关系。 但是下拉列表在启动时显示一个空的插槽,在那里应该select默认值的项目。 码 <div ng-app ng-controller="myCtrl"> <select class="form-control" ng-change="unitChanged()" ng-model="data.unit"> <option ng-repeat="item in units" ng-value="item.id">{{item.label}}</option> </select> </div> 用JS: function myCtrl ($scope) { $scope.units = [ {'id': 10, 'label': 'test1'}, {'id': 27, 'label': 'test2'}, {'id': 39, 'label': 'test3'}, ] $scope.data = { 'id': 1, 'unit': 27 } };