我是AngularJS
的新手并且喜欢它到目前为止。我找不到任何文档的一个问题是:
我有一个带有重复HTML的页面,一个带有子类别的类别页面都具有相同的html模板。我目前正在做的是让一个控制器同时加载所有Json,这有点慢。我想将其分解为子视图(类似于ASP.NET MVC中的部分内容)但是每个视图在初始化时都会使其自己调用该服务。我还想将类别名称作为参数传递。
最有效的方法是什么?我也尝试过指令但是我没有运气保持每个电话的范围。如果您需要更多详细信息,请与我们联系。
答案 0 :(得分:65)
我终于能够解决这个问题了。阅读文档并玩游戏后,这很容易。
这是指令:
angular.module('components', []).directive('category', function () {
return {
restrict: 'E',
scope: {},
templateUrl: '/Scripts/app/partials/CategoryComponent.html',
controller: function ($scope, $http, $attrs) {
$http({
url: "api/FeaturedProducts/" + $attrs.catName,
method: "get"
}).success(function (data, status, headers, config) {
$scope.Cat = data;
}).error(function (data, status, headers, config) {
$scope.data = data;
$scope.status = status;
});
}
}
});
这是具有相同组件的主页面多次调用但具有不同的参数
<ul class="unstyled">
<li>
<category cat-name="Ultrabooks"></category>
</li>
<li>
<category cat-name="Tablets"></category>
</li>
<li>
<category cat-name="Laptops"></category>
</li>
<li>
<category cat-name="Digital SLR Cameras"></category>
</li>
CategoryComponent.html
<a href="#/Categories/{{Cat.CategoryName}}">
<h4>{{Cat.CategoryName}}</h4>
</a>
<div ng-switch on="status">
<div ng-switch-when="500" class="alert alert-error">
{{status}}
{{data}}
</div>
<div ng-switch-default>
<ul class="unstyled columns">
<li class="pin" ng-repeat="p in Cat.Products">
<a href="#/reviews/{{p.UPC}}">
<h5>{{p.ProductName}}</h5>
<img src="{{p.ImageUrl}}">
</a>
</li>
</ul>
</div>
</div>