我是Angular.js的新手,并试图理解它与Backbone.js的不同之处......我们曾经使用Backbone来管理我们的包依赖关系和Require.js.使用Angular.js做同样的事情是否有意义?
当使用角度1.2而不是1.07时,下面的代码不再有效,为什么?
'use strict';
var app = angular.module('myapp', []);
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.
when('/', {
templateUrl: 'part.html',
controller: 'MyCtrl'
}).
otherwise({
redirectTo: '/'
});
}
]);
Run Code Online (Sandbox Code Playgroud)
问题出在注入器配置部分(app.config):
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.0rc1/$injector/modulerr?p0=muninn&p1=Error%…eapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.0rc1%2Fangular.min.js%3A31%3A252)
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,这个问题始于angular 1.1.6.
有没有办法使用多个对象订阅事件 $watch
例如
$scope.$watch('item1, item2', function () { });
Run Code Online (Sandbox Code Playgroud) 我在其他帖子中已经阅读过它,但我无法理解.
我有一个阵列,
$scope.items = [
{ID: '000001', Title: 'Chicago'},
{ID: '000002', Title: 'New York'},
{ID: '000003', Title: 'Washington'},
];
Run Code Online (Sandbox Code Playgroud)
我想将其渲染为:
<select>
<option value="000001">Chicago</option>
<option value="000002">New York</option>
<option value="000003">Washington</option>
</select>
Run Code Online (Sandbox Code Playgroud)
而且我想选择ID = 000002的选项.
我已经阅读过选择并试过了,但我无法弄明白.
我有一个包含许多对象(JSON格式)的数据数组.以下可以假设为此数组的内容:
var data = [
{
"name": "Jim",
"age" : 25
},
{
"name": "Jerry",
"age": 27
}
];
Run Code Online (Sandbox Code Playgroud)
现在,我将这些细节显示为:
<div ng-repeat="person in data | filter: query">
</div
Run Code Online (Sandbox Code Playgroud)
这里,查询被建模为输入字段,其中用户可以限制所显示的数据.
现在,我有另一个位置,我在其中显示当前显示的人/人数,即 Showing {{data.length}} Persons
我想要做的是,当用户搜索某个人并根据查询过滤显示的数据时,Showing...persons还会更改当前显示的人的值.但它没有发生.它始终显示数据中的总人数而不是过滤数据 - 如何获取过滤数据的计数?
我在表行上有一个单击事件,在这一行中还有一个带有单击事件的删除按钮.当我单击删除按钮时,也会触发行上的单击事件.
这是我的代码.
<tbody>
<tr ng-repeat="user in users" class="repeat-animation" ng-click="showUser(user, $index)">
<td>{{user.firstname}}</td>
<td>{{user.lastname}}</td>
<td>{{user.email}}</td>
<td><button class="btn red btn-sm" ng-click="deleteUser(user.id, $index)">Delete</button></td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
showUser当我单击表格单元格中的删除按钮时,如何防止触发事件?
我试图理解ng-if和ng-show/ 之间的区别ng-hide,但它们看起来和我一样.
我是否应该记住选择使用其中一种?
有没有办法重复定义的次数而不是总是迭代一个数组?
例如,下面我希望列表项显示5次,假设$scope.number等于5,另外增加数量,以便每个列表项增量如1,2,3,4,5
期望的结果:
<ul>
<li><span>1</span></li>
<li><span>2</span></li>
<li><span>3</span></li>
<li><span>4</span></li>
<li><span>5</span></li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我使用ng-view包含AngularJS部分视图,我想根据包含的视图更新页面标题和h1标题标记.这些超出了部分视图控制器的范围,因此我无法弄清楚如何将它们绑定到控制器中的数据集.
如果它是ASP.NET MVC你可以使用@ViewBag来做到这一点,但我不知道AngularJS中的等价物.我搜索过共享服务,事件等但仍无法使其正常工作.任何方式来修改我的例子,所以它的工作将非常感激.
我的HTML:
<html data-ng-app="myModule">
<head>
<!-- include js files -->
<title><!-- should changed when ng-view changes --></title>
</head>
<body>
<h1><!-- should changed when ng-view changes --></h1>
<div data-ng-view></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的JavaScript:
var myModule = angular.module('myModule', []);
myModule.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/test1', {templateUrl: 'test1.html', controller: Test1Ctrl}).
when('/test2', {templateUrl: 'test2.html', controller: Test2Ctrl}).
otherwise({redirectTo: '/test1'});
}]);
function Test1Ctrl($scope, $http) { $scope.header = "Test 1";
/* ^ how can I put this in title and h1 */ }
function Test2Ctrl($scope, $http) { …Run Code Online (Sandbox Code Playgroud) javascript templates partial-views angularjs angular-routing
我有服务,说:
factory('aService', ['$rootScope', '$resource', function ($rootScope, $resource) {
var service = {
foo: []
};
return service;
}]);
Run Code Online (Sandbox Code Playgroud)
我想foo用来控制用HTML呈现的列表:
<div ng-controller="FooCtrl">
<div ng-repeat="item in foo">{{ item }}</div>
</div>
Run Code Online (Sandbox Code Playgroud)
为了让控制器检测何时aService.foo更新,我将这个模式拼凑在一起,我将aService添加到控制器$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;
}
});
}
Run Code Online (Sandbox Code Playgroud)
这感觉很长,我一直在每个使用服务变量的控制器中重复它.有没有更好的方法来完成观察共享变量?
angularjs ×10
javascript ×7
events ×1
html-select ×1
ng-options ×1
ng-repeat ×1
requirejs ×1
templates ×1
watch ×1