如何在现有模块中包含角度模块?

时间:2016-04-16 09:51:19

标签: angularjs angularjs-directive pagination umbraco7

所以我在Umbraco 7中定义了一个自定义部分:

namespace NZ_Realty_Ltd.CRM
{
    [Application("crm", "CRM", "trayuser", 8)]
    public class CrmSection : IApplication { }
}

它出现了,不用担心。但它需要一个视图和控制器。所以我在控制器上开始了:

angular.module("umbraco").controller("CrmController",
    function ($scope, $http) {
        $http.get('backoffice/crm/ContactApi/GetAll').success(function (data) {
            $scope.contacts = data;
        });
    });

再次,没问题。我的数据正在从C#CRUD api中读取并被发送回视图。但我想对这些结果进行分页。所以我正在尝试使用此自定义指令来执行此操作:https://github.com/michaelbromley/angularUtils/tree/master/src/directives/pagination

这是我的html视图:

<div ng-controller="CrmController">

    <umb-pane>
        <p>Page {{currentPage}} / {{totalPages}}</p>
        <p>Showing {{pageSize}} items per page:</p>

        <ul class="contacts">
            <li dir-paginate="contact in contacts | itemsPerPage: 10">
                <span>{{contact.name}}</span>
                <p>{{contact.bio}}</p>
            </li>
        </ul>
        <dir-pagination-controls></dir-pagination-controls>
    </umb-pane>

</div>

问题是没有出现这些表达式(它们都是空白的)。我错过了如何包含分页模块的步骤。实际上我已经坚持了几个小时。我尝试了以下所有方法:

angular.module("umbraco", ['angularUtils.directives.dirPagination']).controller("CrmController",
    function ($scope, $http) {
        $http.get('backoffice/crm/ContactApi/GetAll').success(function (data) {
            $scope.contacts = data;
        });
    });

...仅包含来自<script>标签的指令javascript文件。但我真的不知道我在做什么,也不太了解模块语法(我已经阅读了很多次的分页演示,但它似乎与使用umbraco angularjs应用程序有所不同)。我在文档中看到,包括第二个参数意味着你正在创建一个新模块。但是[]中的信息与第二个参数的相关性是什么?为什么我要创建一个新模块?我不能只包含现有指令吗?

编辑:这是我心中最接近应该工作的东西。但我没有列出任何联系人,也没有显示分页控件。我的想法是加载分页模块(以及指令),然后正常创建我的控制器以避免冲突和加载顺序,但也在控制器中添加默认值,如下例所示:http://plnkr.co/edit/Wtkv71LIqUR4OhzhgpqL?p=preview

angular.module("angularUtils.directives.dirPagination");
angular.module("umbraco").controller("CrmController",
    function ($scope, $http) {
        $http.get('backoffice/crm/ContactApi/GetAll').success(function (data) {
            $scope.contacts = data;
            $scope.currentPage = 1;
            $scope.pageSize = 10;
        });
    });

1 个答案:

答案 0 :(得分:1)

您可以在控制器启动之前添加它:

app.requires.push('angularUtils.directives.dirPagination');

了解详情: https://our.umbraco.org/forum/umbraco-7/developing-umbraco-7-packages/47905-Including-an-angular-module