我是AngularJS的新手。 我已经了解到,我可以使用如下查询在DOM中查找元素: var e = angular.element(document.querySelector('#id')); var e = angular.element(elem.querySelector('.classname')); 这对于通过ID或CSS类名查找元素非常有用。 但是,我需要能够find一个元素使用不同的方法。 我有一个如下所示的元素: <div my-directive class='myContainer'>…</div> 我无法在“myContainer”上查询,因为它的重用程度如何。 出于这个原因,我想find任何具有“my-directive”属性的元素。 如何searchDOM并find任何使用“my-directive”的元素?
我试图绑定到rootcope,以便在用户login时可以在不同的服务器上设置状态。 这是我的模块。 angular.module('presence', [ ] ) .run(function ($rootScope) { $rootScope.$watch($rootScope.currentUser, function () { console.log('change currentUser') console.log($rootScope.currentUser) presence.setGlobal({ u: $rootScope.currentUser, s: 'on' }) }) }) 没有控制器,因为它只是关于用户的全球存在,而与DOM无关。 这不工作,手表运行一次,但从来没有再次在随后的变化。 谢谢你的帮助。 编辑:login代码如下所示: $scope.login = function() { $http.post('http://localhost:3000/login', $scope.user).success(function(res, status) { if (res && res._id) { $rootScope.currentUser = res } }).error(function(res, status) { $scope.error = res.err }); }; 此代码在DOM中更新正常。 它在html中显示用户名,例如: […]
我正在尝试使用AngularJS创build我的第一个应用程序。 但是,如果我需要为我的特定情况使用指令,我有点困惑。 我有一个简单的地图页面,我需要显示所选区域的纬度/经度值。 目前我没有使用指令。 我在控制器中做所有事情,并使用partials来显示结果。 我不打算在任何其他地方重复使用我的地图视图。 这就是为什么我不觉得我需要一个指令。 另一方面,我读了一个地方,每当你尝试在你的控制器(我正在使用谷歌地图API)中操作DOM时,你应该将该部分移到指令。 这是我的简单控制器: function MapViewController($scope) { $scope.zoom = 6; $scope.lat = 37; $scope.lon = -122; var mapOptions = { center: new google.maps.LatLng($scope.lat, $scope.lon), zoom: $scope.zoom, mapTypeId: google.maps.MapTypeId.HYBRID }; $scope.map = new google.maps.Map( document.getElementById('map-canvas'), mapOptions); /* * Update zoom and other map attributes. */ google.maps.event.addListener($scope.map, 'center_changed', function() { $scope.$apply(function () […]
我正在写一个依赖于promise的angularjs应用程序,虽然它正在工作,但我不知道是否可以做得更好。 在代码的开始,我创build了一个承诺,取消一些数据。 当这样做完成后,我想运行几个都使用这个数据的函数。 这些函数附加在应用程序的不相关部分,所以我不知道它们附在promise上的顺序。 他们也不需要依次完成。 app.service("Fetch", function ($q){ return function() { var def = $q.defer(); somelibrary.asynccall(function(error, data){ //callback if (error) def.reject(error); else def.resolve(data); }); return def.promise; }; }); app.controller("ctrl", function ($scope, Fetch) { var prom = Fetch(); //somewhere: prom.then(function(data){$scope.var1 = data["VAR1"];}); //somewhere else: prom.then(function(data){$scope.var2 = data["VAR2"]}); }); 这里的主要缺点是只有在前面的结束时才执行,这在这里是不必要的。 此外,我需要在每个function(data){…}内添加return data ,否则以下then()不具有可用的data 。 有没有另外的方法来做到这一点,更适合这种情况? 编辑:正如@ jfriend00提到的,我错了; […]
我正在学习angular度。 我不明白onLoad和ng-init在初始化varibale时有什么区别。 在哪个范围内创build这个variables。 For example <ng-include onLoad="selectedReq=reqSelected" src="'partials/abc.html'"></ng-include> OR <ng-include ng-init="selectedReq=reqSelected" src="partials/abc.html"></ng-include> 请给我一些关于隔离范围的想法。
该文档似乎没有指定: http : //docs.angularjs.org/api/ngResource.$resource
我得到了这个代码$rootScope.$on('abc',function(event, next, current){ }); 在一个教程。 我的问题是什么.$on() ? 如果它是一个函数,那么为什么它前面是$ ?
我正在开始使用Angular.JS。 我有一些共享相同的控制器的意见。 每个视图都是收集存储在控制器中的数据的一个步骤: $routeProvider.when('/', { templateUrl: 'partials/text.html', controller: 'itemSubmitter' }); $routeProvider.when('/nextThing', { templateUrl: 'partials/nextthing.html', controller: 'itemSubmitter' }); itemSubmitter控制器: $scope.newitem = { text: null } 这是第一个观点: <textarea ng-model="newitem.text" placeholder="Enter some text"></textarea> <p>Your text is: {{ newitem.text }}</p> 这个工作,现场更新'你的文字是:'段落。 但是,当下一个视图被加载时, {{ newitem.text }}被重置为默认值。 我如何使存储在控制器实例中的值在视图间持久存在?
我有一个指令(进度条),应该有两个可能的状态,一个没有任何描述,一个在左边有一个标签。 简单地使用这个标签的transcluded内容会很酷。 有没有人知道我可以添加一个类到我的指令取决于是否已经给予transclude内容? 所以我想补充一下: <div class="progress" ng-class="{withLabel: *CODE GOES HERE*}"> <div class="label"><span ng-transclude></span> <div class="other">…</div> </div> 非常感谢!
我想在一个句子中设置一个单词使其具有md-primary颜色,而另一个单词使用重音颜色。 我假设了这样的事情: <div> Hello <span class="md-primary">friend</span>. How are <span class="md-accent">you</span>? </div> 但是这些类仅适用于某些指定的组件。 有什么办法呢?