Tag: angularjs

如何在AngularJs中为ng-repeat使用字典?

我知道我们可以很容易地使用ng-repeat作为json对象或数组,如: <div ng-repeat="user in users"></div> 但是我们如何使用ng-repeat作为词典呢,例如: var users = null; users["182982"] = "{…json-object…}"; users["198784"] = "{…json-object…}"; users["119827"] = "{…json-object…}"; 我想用用户字典: <div ng-repeat="user in users"></div> 可能吗?。 如果是的话,我怎么能在AngularJs中做到这一点? 我的问题的例子:在C#中我们定义字典,如: Dictionary<key,value> dict = new Dictionary<key,value>(); //and then we can search for values, without knowing the keys foreach(var val in dict.Values) { } 有没有一个内置的函数,从像c#中的字典返回值?

访问angularjs中的单击的元素

我对AngularJS比较陌生,怀疑我没有理解概念。 我也使用Twitter Bootstrap,并且我已经加载了jQuery。 工作stream程:用户点击列表中的一个链接,“主”部分被更新,链接用户点击获得激活的类别。 基本的HTML标记: <ul class="list-holder" ng-controller="adminController"> <li><a ng-click="setMaster('client')">Clients</li> <li><a ng-click="setMaster('employees')">Employees</li> <li><a ng-click="setMaster('etc')>Etc…</li> </ul> 这样做在jQuery中: jQuery(".list-holder").on('click', 'a', function(event){ event.preventDefault(); jQuery(".list-holder li").removeClass('active'); jQuery(this).parent('li').addClass('active'); }); 但我无法弄清楚如何整合Angular和jQuery来完成这个工作,因为我使用Angular从服务器获取主列表(以JSONforms)并更新页面上的列表。 我如何整合这个? 一旦进入angular度控制器function,我似乎无法find我点击的元素 控制器: function adminController($scope) { $scope.setMaster = function(obj) { // How do I get clicked element's parent li? console.log(obj); } }

外部资源没有被AngularJs加载

使用Angular和Phonegap,我试图加载远程服务器上的video,但遇到了问题。 在我的JSON中,URL是作为普通的HTTP URLinput的。 "src" : "http://www.somesite.com/myvideo.mp4" 我的video模板 <video controls poster="img/poster.png"> <source ng-src="{{object.src}}" type="video/mp4"/> </video> 我的所有其他数据被加载,但是当我看我的控制台,我得到这个错误: Error: [$interpolate:interr] Can't interpolate: {{object.src}} Error: [$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy. URL 我尝试在我的configuration设置中添加$compileProvider ,但是它没有解决我的问题。 $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel):/); 我看到这个post关于跨域问题,但我不知道如何解决这个问题,或者我应该走什么方向。任何想法? 任何帮助表示赞赏

在AngularJS中读取查询参数的最简洁方法是什么?

我想阅读使用AngularJS的URL查询参数的值。 我使用以下URL访问HTML: http://127.0.0.1:8080/test.html?target=bob 如预期的那样, location.search是"?target=bob" 。 为了访问目标的价值,我发现网上列出的各种例子,但没有一个在AngularJS 1.0.0rc10中工作。 具体而言,以下都是undefined : $location.search.target $location.search['target'] $location.search()['target'] 任何人都知道什么会工作? (我使用$location作为我的控制器的参数) 更新: 我已经发布了一个解决scheme,但我并不完全满意。 开发人员指南中的文档:Angular Services:使用$ location指出以下有关$location : 我应该何时使用$ location? 任何时候你的应用程序需要对当前URL中的变化做出反应,或者如果你想改变浏览器中的当前URL。 对于我的情况,我的页面将从一个带有查询参数的外部网页打开,所以我不是“对当前URL的改变做出反应”。 所以也许$location不是正确的工具(丑陋的细节,请参阅下面的答案)。 因此,我已经把这个问题的标题从“如何使用$ location读取AngularJS中的查询参数? 到“在AngularJS中读取查询参数的最简洁的方法是什么?”。 很明显,我可以使用JavaScript和正则expression式来parsinglocation.search ,但是如此低级的东西基本上会触犯我的程序员的敏感性。 所以:有没有更好的方法来使用$location比我在我的答案,还是有一个简洁的替代?

我可以在每个控制器angular度提供一个function吗?

如果我有一个实用函数foo ,我希望能够从我的ng-app声明中的任何地方调用。 有没有办法让我的模块设置可以全局访问,还是需要将它添加到每个控制器的作用域?

用AngularJS设置活动标签样式

我有这样的AngularJS路线设置: $routeProvider .when('/dashboard', {templateUrl:'partials/dashboard', controller:widgetsController}) .when('/lab', {templateUrl:'partials/lab', controller:widgetsController}) 我在顶栏上有一些链接样式为选项卡。 如何添加“活动”类到一个标签取决于当前模板或url?

从指令到控制器传递AngularJS范围variables的最简单的方法是什么?

将AngularJS范围variables从指令传递给控制器​​最简单的方法是什么? 我见过的所有例子看起来都非常复杂,是不是有一种方法可以通过指令访问控制器,并设置其中一个范围variables?

使用Require.js和Angular.js是否有意义?

我是Angular.js的新手,并试图理解它与Backbone.js是如何不同的…我们曾经在使用Backbone时使用Require.js来pipe理包依赖。 用Angular.js做同样的事情有意义吗?

AngularJS比jQuery做得更好吗?

我主要使用jQuery库,并刚刚开始使用AngularJS。 我已经阅读了一些关于如何使用Angular的教程,但是我不清楚为什么或何时使用它,或者我可能比使用jQuery有什么好处。 在我看来,Angular让你思考MVC,这也许意味着你将你的网页看作模板+数据组合。 只要你觉得自己有dynamic数据,就可以使用{{data bindings}} 。 然后,Angular会为您提供一个$ scope处理程序,您可以静态填充或通过调用Web服务器。 这看起来很像JSP的网页devise方式。 我需要Angular吗? 对于简单的DOM操作, 不涉及数据操作(例如:鼠标hover时的颜色变化,点击时隐藏/显示元素),jQuery或者vanilla JS就足够简洁了。 这假定angular度的mvc中的模型是反映页面上数据的任何东西,因此CSS属性(如颜色,显示/隐藏等)的更改不会影响模型 。 Angular与DOM操作的jQuery或vanilla JS有什么优势? 与jQuery可以和插件做什么相比,Angular可以做些什么呢?

试图根据常量在控制器中dynamic设置templateUrl

我想根据我在angularjs bootstrap中定义的预设常量来更改与控制器相关的templateUrl。 我无法弄清楚如何改变这一点。 我已经尝试过使用UrlRouteProvider,但一直没能弄清楚如何从文件系统中拉出html。 我卡在templateUrl上。 在下面的代码中,输出首先显示“svcc确实被传入了第一个函数的console.out,但是在templateUrl定义函数中,CONFIG是未定义的。 我打开其他方式来做到这一点。 var app = angular.module('svccApp', [ 'ui.router' ]); var myConstant = {}; myConstant.codeCampType = "svcc"; app.constant("CONFIG", myConstant); app.config(['$stateProvider', '$urlRouterProvider','CONFIG', function ($stateProvider, $urlRouterProvider,CONFIG) { console.log(CONFIG.codeCampType); $stateProvider .state('home', { url: '/home', //templateUrl: 'index5templateA.html', (THIS WORKS) templateUrl: function(CONFIG) { console.log('in templateUrl ' + CONFIG.codeCampType); if (CONFIG.codeCampType === "svcc") { return 'index5templateA.html'; } […]