如何创build一些可以从我的所有控制器访问的utils bundle? 我在主模块中有这个路由代码: 'use strict'; angular.module('lpConnect', []). config(['$routeProvider', function($routeProvider) { $routeProvider. when('/home', {template: 'views/home.html', controller: HomeCtrl}). when('/admin', {template: 'views/admin.html', controller: AdminCtrl}). when('/connect', {template: 'views/fb_connect.html', controller: MainAppCtrl}). otherwise({redirectTo: '/connect'}); }]); 我想要一个HomeCtrl , AdminCtrl和MainAppCtrl通用的函数。 我应该怎么做AngularJS?
我是Angular和Flot的新手,但是我对Jquery和Javascript很有经验。 我对如何将Flot图表绑定到Angular数据模型有点困惑,因为Flot是一个JQuery插件。 我已经四处搜寻,但一直没能find一个例子。 我也很乐意使用highcharts,谷歌图表,或任何其他图表解决scheme。
我打算学习来自许多不同的MV *框架的AngularJS。 我喜欢这个框架,但是我在控制器之间传递数据时遇到了麻烦。 假设我有一个input(input.html)和一个控制器的屏幕,让我们说InputCtrl。 这个视图上有一个button,可以把你带到另一个屏幕,比如批准(approve.html)和一个控制器ApproveCtrl。 这个ApproveCtrl需要来自InputCtrl的数据。 这似乎是在更大的应用程序中非常常见的情况。 在我以前的MV *框架中,这将被处理(伪代码): var self = this; onClick = function() { var approveCtrl = DI.resolve(ApproveCtrl); approveCtrl.property1 = self.property1; approveCtrl.property1 = self.property2; self.router.show(approveCtrl); } 它会像Controller-一样工作。 你首先创build控制器,有机会把它放在正确的状态; 之后视图被创build。 现在,在AngularJS中,我正在处理这样的: var self = this; onClick = function(){ self.$locationService.path('approve'); } 这工作像查看优先。 你说哪个视图/路线来导航,Controller是由框架创build的。 我发现很难控制创build的Controller的状态并将数据传递给它。 我已经看到并尝试了以下方法,但是在我看来,所有方面都有自己的问题: 将一个共享服务注入到InputCtrl&ApproveCtrl中,并把所有要共享的数据放在这个服务上 这看起来像一个肮脏的工作周围; 共享服务中的状态变成了全局状态,而我只是需要它将数据传递给ApproveCtrl 这个共享服务的生命周期比我所需要的更长 – 只是将数据传递给ApproveCtrl 传递$ routeParams中的数据 在传递很多参数时,这会变得非常混乱 […]
var theApp = angular.module('theApp', []); var app = angular.module('theApp', ['ui.bootstrap']); app.controller('MenuSideController', ['$scope','SnazzyService','$modal','$log', function($scope, SnazzyService, $modal, $log) { $scope.user.zoomlvl = '2'; }]); 我有上面的控制器,它设置$scope ,我只能从里面访问值。 但我看到的地方使用下面我将能够访问$scope但是当我console.log($scope) $scope.user.zoomlvl它不存在。 我不知道如何访问MenuSideController $范围,并用valZoomvariables更新。 var appElement = document.querySelector('[ng-app=theApp]'); var $scope = angular.element(appElement).scope(); console.log($scope); $scope.$apply(function() { $scope.user.zoomlvl = valZoom; });
我对AngularJS相当新颖。 我正试图将一个对象绑定到一个textarea。 HTML: <textarea rows="5" cols="10" ng-model="menuItem.preset"></textarea> 模型: { "kind": "title", "label": "ADD_TITLE", "iconSrc": "textTitle.png", "experimentInclude": "", "experimentExclude": "three", "preset": { "compType": "richTitle", "styleId": "txtNew" } } 结果: 如何显示JSONstring化(并将其另存为对象)?
我有一个应用程序,它使用单个ng视图和多个控制器和视图。 如果我浏览根目录,例如:www.domain.com,一切正常。 除了如果我按Ctrl + R(刷新),那么它给了我404错误页面找不到。 例如:在这个页面刷新给我错误。 http://domain.com/item/1/ 。 但是,如果我使用hashbang访问该页面,那么它的工作方式如下: http ://domain.com/#!/item/1/ 我该如何解决这个问题? 我htacess是空的。 而且我使用支持html5 hashbang的chrome。
我从我的后台服务器接收数据,结构如下: { name : "Mc Feast", owner : "Mc Donalds" }, { name : "Royale with cheese", owner : "Mc Donalds" }, { name : "Whopper", owner : "Burger King" } 对于我的观点,我想“倒置”列表。 即我想列出每个所有者,并为该所有者列出所有的汉堡包。 我可以通过在一个filter中使用underscorejs函数groupBy来实现这一点,然后使用ng-repeat指令: JS: app.filter("ownerGrouping", function() { return function(collection) { return _.groupBy(collection, function(item) { return item.owner; }); } }); HTML: <li ng-repeat="(owner, hamburgerList) in […]
我试图在一个UI路由器解决scheme内部redirect,并想知道是否有一种方法来重新路由在路由器parsing器。 目前这不是人们所想的。 resolver(auth, $state){ if(!auth.isLoggedIn()){ $state.go('noLoggedInPath'); } } 如何正确地redirectparsing器? 我的临时黑客是这个,但我不舒服。 resolver(auth, $state, $timeout){ if(!auth.isLoggedIn()){ $timeout(function () { $state.go('noLoggedInPath'); }, 0); } }
我还是AngularJS的新手,所以我只是想做一个简单的CRUD应用程序。 目前我拉数据(在一个JSON文件) $http在一个由控制器MyCtrl1处理的MyCtrl1 。 function MyCtrl1($scope, $http) { $http.get('data/accounts.json').success(function(data) { $scope.accounts = data; … }); } 在这个div里面有一个带有下面的tbody : <tbody> <tr ng-repeat="account in accounts | orderBy:sort.field:sort.desc | startFrom:currentPage * pageSize | limitTo:pageSize"> <td contentEditable="true" ng-repeat="(label, value) in account" ng-show="fields[label].visible">{{value}}</td> </tr> </tbody> orderByfilter根据选定的字段进行sorting; startFrom将数组切片以在某个点开始; limitTo根据预设的页面大小进行过滤。 没有分页filter的performance是非常可怕的,但我想知道是否有其他方式去做这个? 我有Chrome的ngRepeatWatch和性能选项卡,它显示ngRepeatWatch占用最多的时间,我认为它必须做我所做的所有过滤。
我正在使用AngularJS 1.1.3来使用新的$资源与承诺… 我怎样才能得到callback? 我以同样的方式尝试使用$ http: $resource.get('…'). success(function(data, status) { alert(data); }). error(function(data, status) { alert((status); }); 但是没有“成功”,也没有“错误”function… 我也试过了: $resource.get({ id: 10 },function (data) { console.log('success, got data: ', data); }, function (err) { alert('request failed'); }); 那总是打印“成功,获得数据”即使返回是一个404 … 任何想法? 谢谢