在AngularJS中构建视图

时间:2015-04-19 10:29:11

标签: javascript angularjs

我正在使用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,但我仍然对如何在我的应用程序中进一步实现这一点感到困惑。

任何人都可以帮助我理解吗?也许我还在以错误的方式看待它。

1 个答案:

答案 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变量来引用它。