0

我有以下内容:

    <div data-ng-controller="AdminGridContentController" >
        <ng-include src="'/Content/app/admin/partials/grid-content-base.html'"></ng-include>
        <ng-include src="'/Content/app/admin/partials/table-content.html'"></ng-include>
    </div>

我的表包括如下所示:

<div ng-form name="page">
    {{ page.$pristine }}
    <table width="100%" cellspacing="0" class="form table" >
            <tr>
                <th>ID</th>
                <th>Title</th>

            </tr>
            <tr data-ng-repeat="row in grid.data">
                <td>{{ row.contentId }}</td>
                <td><input type="text" ng-model="row.title" /></td>
            </tr>
    </table>
</div>

我想做的是在我的网格内容库上放置一个按钮,当表上的数据变脏时启用该按钮。我知道我可以使用 {{ page.$pristine }} 检查该数据的状态,但是如何将其传达回 grid-content-base.html?

请注意,我确实尝试将所有内容都放在“ng-form name=page”中,但是有一个问题。在网格内容基础上,我有一个输入选择。一旦我进行选择,它就会使页面显示为脏。

所以我仍然只想在 page.$pristine 变为真或假时全局设置一些东西。

4

1 回答 1

1

始终可以选择$rootScope.$broadcast从表格页面发送消息。这可以在网格页面中处理。

表控制器中的类似内容

$scope.$watch('page.$pristine',function(newValue) {
    $rootScope.broadcast("formUpdated",{state:page.$pristine});
});

在网格控制器中是这样的

$scope.on("formUpdated",function(args) {
    //args.state would have the state.
});

注意:$rootScope必须像注入一样注入到控制器中$scope

于 2013-07-18T05:10:09.720 回答