Tag: angularjs

在angularjs中如何访问触发事件的元素?

我在我的web应用程序中同时使用Bootstrap和AngularJS。 两个人一起工作我有一些困难。 我有一个元素,它有属性data-provide="typeahead" <input id="searchText" ng-model="searchText" type="text" class="input-medium search-query" placeholder="title" data-provide="typeahead" ng-change="updateTypeahead()" /> 我想在用户input字段时更新data-source属性。 函数updateTypeahead被正确触发,但我没有访问触发事件的元素,除非我使用$('#searchText') ,这是jQuery的方式,而不是AngularJS的方式。 让AngularJS使用旧式JS模块的最佳方式是什么?

我如何在AngularJS中设置dynamic模型名称?

我想用一些dynamic的问题填充一个表单( 在这里提琴): <div ng-app ng-controller="QuestionController"> <ul ng-repeat="question in Questions"> <li> <div>{{question.Text}}</div> <select ng-model="Answers['{{question.Name}}']" ng-options="option for option in question.Options"> </select> </li> </ul> <a ng-click="ShowAnswers()">Submit</a> </div> ​ function QuestionController($scope) { $scope.Answers = {}; $scope.Questions = [ { "Text": "Gender?", "Name": "GenderQuestion", "Options": ["Male", "Female"]}, { "Text": "Favorite color?", "Name": "ColorQuestion", "Options": ["Red", "Blue", "Green"]} ]; $scope.ShowAnswers = […]

AngularJS在单页面应用程序中的多个控制器

我想知道的是如何使用多个控制器的单个页面的应用程序。 我试图弄清楚,我发现了与我的非常相似的问题,但只有一堆不同的答案解决了一个特定的问题,你最终不使用多个控制器的单个页面的应用程序。 那是因为在一个页面上使用多个控制器是不明智的? 或者是不可能的? 比方说,我已经有一个工作在主页面上的图像旋转木马控制器,但是我学会了如何使用模式,而且我还需要一个新的控制器(或者其他需要控制器的东西)。 那我该怎么办? 我看到了一些其他问题的答案,他们问我几乎和我一样的事情,人们回答说:“你为什么要这样做,就这样做…”。 什么是最好的方法,或者你是如何做到的? 编辑 你们中的许多人正在回答只声明两个控制器,然后使用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? 这使我困惑。 (你不能这样添加两个控制器,我想…)

没有其他的HTML的angularjs换行符filter

我试图将换行符( \n )转换为html br的。 根据Google小组的讨论,以下是我所得到的结果: myApp.filter('newlines', function () { return function(text) { return text.replace(/\n/g, '<br/>'); } }); 那里的讨论还build议在视图中使用以下内容: {{ dataFromModel | newline | html }} 这似乎是使用旧的htmlfilter,而现在我们应该使用ng-bind-html属性。 无论如何,这会造成一个问题:我不希望任何来自原始string( dataFromModel )的HTML呈现为HTML; 只有br的。 例如,给定以下string: 而7> 5 我还是不想在这里的HTML&东西… 我想要它输出: While 7 &gt; 5<br>I still don't want html &amp; stuff in here… 有什么办法可以做到这一点?

如何在jsfiddle中debuggingjs

我正在看这jsfiddle: http : //jsfiddle.net/carpasse/mcVfK/它工作正常,这不是问题,我只是想知道如何通过JavaScript进行debugging。 我试图使用debugging器命令,我不能在源选项卡中find它? 任何想法如何我可以debugging这个? 从小提琴的一些代码: angular.module('app', ['appServices']) .config(['$routeProvider', function($routeProvider) { $routeProvider. when('/home', {templateUrl: 'home.html', controller: HomeCtrl}). when('/list', {templateUrl: 'list.html', controller: ListCtrl}). when('/detail/:itemId', {templateUrl: 'detail.html', controller: DetailCtrl}). when('/settings', {templateUrl: 'settings.html', controller: SettingsCtrl}). otherwise({redirectTo: '/home'}); }]);

如果持久模型(服务器数据库)由外部应用程序更改,AngularJS是否可以自动更新视图?

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

Angular UI模式的范围问题

我无法理解/使用angular度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({ templateUrl: 'partials/create.html', controller: 'AppCreateCtrl' }); […]

在Karma + AngularJStesting中加载一个模拟的JSON文件

我有一个AngularJS应用程序设置与testing使用Karma +茉莉花。 我有一个函数,我想testing一个大型的JSON对象,将其转换为应用程序其余部分更易于使用的格式,然后返回转换后的对象。 而已。 对于我的testing,我想你有单独的JSON文件(* .json)与模拟JSON内容只 – 没有脚本。 对于testing,我希望能够加载JSON文件,并将对象泵入我testing的函数中。 我知道我可以在模拟工厂内embeddedJSON,如下所示: http : //dailyjs.com/2013/05/16/angularjs-5/但我真的希望JSON不要包含在脚本中 – 只要直接JSON文件。 我已经尝试了一些东西,但我在这个领域相当不错。 首先,我将Karma设置为包含我的JSON文件,以查看它将执行的操作: files = [ … 'mock-data/**/*.json' … ] 这导致: Chrome 27.0 (Mac) ERROR Uncaught SyntaxError: Unexpected token : at /Users/aaron/p4workspace4/depot/sitecatalyst/branches/anomaly_detection/client/anomaly-detection/mock-data/two-metrics-with-anomalies.json:2 所以然后我改变它只是提供文件,而不是“包含”他们: files = [ … { pattern: 'mock-data/**/*.json', included: false } … ] 现在,他们只是送达,我想我会尝试从我的规范中使用$ http加载文件: $http('mock-data/two-metrics-with-anomalies.json') 当我运行规范我收到: Error: Unexpected […]

如何清除或停止angularjs中的timeInterval?

我正在做一个演示,我正在从服务器获取数据定期的时间间隔使用$interval现在我需要停止/取消这个。 我怎么能做到这一点? 如果我需要重新启动过程,我该怎么做? 其次,我还有一个问题:我在时间间隔之后从服务器获取数据。 有没有必要使用$scope.apply或$scope.watch ? 这是我的老板: app.controller('departureContrl',function($scope,test, $interval){ setData(); $interval(setData, 1000*30); function setData(){ $scope.loading=true; test.stationDashBoard(function(data){ console.log(data); $scope.data=data.data; $scope.loading=false; //alert(data); },function(error){ alert('error') }) ; } });

Angular.js ng-重复跨越多个元素

这个问题已经在这里得到了部分解决: Angular.js ng-repeat跨越多个tr 然而,这只是一个解决方法,它实际上并没有解决核心问题,即:如何在不使用包装的情况下使用ng-repeat跨多个元素? 例如,jquery.accordion要求你重复一个h3和div元素,如何用ng-repeat来做这件事?