我有一个包含许多对象(JSON格式)的数据数组。 以下内容可以作为这个数组的内容: var data = [ { "name": "Jim", "age" : 25 }, { "name": "Jerry", "age": 27 } ]; 现在,我将这些细节显示为: <div ng-repeat="person in data | filter: query"> </div 在这里,查询被建模为用户可以限制显示数据的输入字段。 现在,我有另一个位置显示当前显示的人数/ Showing {{data.length}} Persons ,即Showing {{data.length}} Persons 我想要做的是,当用户搜索一个人,并显示的数据基于查询过滤时, Showing…persons也改变当前Showing…persons的价值。 但是这并没有发生。 它始终显示数据中的总人数而不是过滤的数据 – 如何获得过滤的数据的数量?
我有一个服务,说: factory('aService', ['$rootScope', '$resource', function ($rootScope, $resource) { var service = { foo: [] }; return service; }]); 我想用foo来控制在HTML中呈现的列表: <div ng-controller="FooCtrl"> <div ng-repeat="item in foo">{{ item }}</div> </div> 为了让控制器能够检测到aService.foo被更新的时间,我已经把这个模式拼凑在了一起,在这个模式里我添加一个服务到控制器的$scope ,然后使用$scope.$watch() : function FooCtrl($scope, aService) { $scope.aService = aService; $scope.foo = aService.foo; $scope.$watch('aService.foo', function (newVal, oldVal, scope) { if(newVal) { scope.foo = newVal; } }); } […]
我已经在其他文章中读过,但我无法弄清楚。 我有一个数组, $scope.items = [ {ID: '000001', Title: 'Chicago'}, {ID: '000002', Title: 'New York'}, {ID: '000003', Title: 'Washington'}, ]; 我想把它渲染为: <select> <option value="000001">Chicago</option> <option value="000002">New York</option> <option value="000003">Washington</option> </select> 而且我想选择ID = 000002的选项。 我已阅读选择和尝试,但我无法弄清楚。
我期待在Stackoverflow上看到这个问题,但没有。 显然我是唯一有这个问题的人,在我看来是非常普遍的。 我有一个基本的项目,我正在努力,但路线似乎不工作,即使我迄今为止所做的一切似乎是正确的。 我在我的index.html文件中有这片html: <html> <head ng-app="myApp"> <title>New project</title> <script src="https://code.angularjs.org/1.6.0/angular.min.js"></script> <script src="https://code.angularjs.org/1.6.0/angular-route.min.js"></script> <script src="app.js"></script> </head> <body> <a href="#/add-quote">Add Quote</a> <div ng-view ></div> </body> </html> 这里是我的app.js : var app = angular.module('myApp', ['ngRoute']); app.config(['$routeProvider', function ($routeProvider) { $routeProvider .when('/add-quote', { templateUrl: 'views/add_quote.html', controller: 'QuoteCtrl' }) .otherwise({ redirectTo: '/' }); }]); 现在当我刚刚访问该网页时,以下是我在网址中获得的内容: HTTP://本地主机:8000 /管理员#/ 当我点击Add quote按钮,我得到这个: HTTP://本地主机:8000 […]
我想在角度中使用filter ,并希望过滤多个值,如果它具有任何一个值,那么它应该显示。 我有这样的结构: 一个有属性genres的对象movie ,我想过滤Action和Comedy 。 我知道我可以做filter:({genres: 'Action'} || {genres: 'Comedy'}) ,但如果我想动态地过滤,该怎么办。 例如filter: variableX 如何在$scope设置variableX ,当我有一个流派的数组,我必须过滤? 我可以构造它作为一个字符串,然后做一个eval()但我不想使用eval()…
我试图建立一个指令,负责添加更多的指令 ,它宣布的元素。 例如,我想构建一个指令,负责添加datepicker , datepicker-language和ng-required="true" 。 如果我尝试添加这些属性,然后使用$compile我显然会生成一个无限循环,所以我正在检查是否已经添加了所需的属性: angular.module('app') .directive('superDirective', function ($compile, $injector) { return { restrict: 'A', replace: true, link: function compile(scope, element, attrs) { if (element.attr('datepicker')) { // check return; } element.attr('datepicker', 'someValue'); element.attr('datepicker-language', 'en'); // some more $compile(element)(scope); } }; }); 当然,如果我不$compile元素,属性将被设置,但指令不会被引导。 这种方法是正确的还是我做错了? 有没有更好的方法来实现相同的行为? UDPATE :鉴于$compile是实现这一目的的唯一方法,是否有办法跳过第一次编译传递(该元素可能包含多个子项)? 也许通过设置terminal:true ? 更新2 :我已经尝试把指令放入一个select元素,并且如所期望的那样,编译运行两次,这意味着有两倍的预期option 。
我需要传递和接收两个参数到我想要使用ui-router的ui-sref传输的状态。 就像使用下面的链接,用foo和bar参数将状态转换到home : <a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home state with foo and bar parameters </a> 在控制器中接收foo和bar值: app.controller('SomeController', function($scope, $stateParam) { //.. var foo = $stateParam.foo; //getting fooVal var bar = $stateParam.bar; //getting barVal //.. }); 我在控制器中获取$stateParam undefined 。 有人能帮助我理解如何完成它吗? 编辑: .state('home', { url: '/', views: { '': { templateUrl: 'home.html', controller: 'MainRootCtrl' }, […]