我正在使用Backbone从AngularJS创建我的第一个应用程序。作为第一个练习,我想移植我写给AngularJS的现有骨干应用程序。
该应用程序包含一个包含3个div的主视图。
<!-- main.html -->
<div id="filter"></div>
<div>
<div id="result-list"></div>
<div id="result-details"></div>
</div>
到目前为止,我能够在Angular中创建mainView
// My Route
$routeProvider.when("/", {
controller: "mainController",
templateUrl: "app/components/main/main.html"
});
...
// My mainController
'use strict';
app.controller('mainController', function ($scope) {});
我现在要做的是在我的主视图的div
过滤器上绑定第二个名为filter的视图。但是我在Angular中看到你只能有1个视图。骨干中视图的等价物与角度指令相对应。
我有角度read into the different semantics,但我仍然对如何在我的应用程序中进一步实现这一点感到困惑。
任何人都可以帮助我理解吗?也许我还在以错误的方式看待它。
答案 0 :(得分:2)
正如您所提到的,主干中的视图等同于角度中的指令。因此,要创建结果列表视图,您需要创建指令。
<results-list></results-list>
在你的指令代码中:
angularApp.directive("resultsList", function() {
return {
restrict: "AEC", // Attribute, element, class
template: " <div id="result-list">remaining code here</div>",
// if its in separate file then
// templateUrl : "",
link : function(scope, element, attrs) {
// add your logic to customize
// binding events etc
}
}
});
现在您可以在任何需要的地方重复使用该指令。如果你有逻辑&amp;控制器内部指令所需的数据,然后您可以使用scope
函数中的link
变量来引用它。