angular如何刷新或重载外部事件的指令

时间:2015-10-31 00:25:13

标签: angularjs angularjs-directive

我正在使用angular 1.3

这里的Plunker代码http://plnkr.co/edit/J7TSfUcNID11BZBEaBBr?p=preview

在我的代码中,我有ngRoute为索引页面定义了一个控制器,它实现了如下的提取。

   .config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {

    $urlRouterProvider.otherwise('/');

    $stateProvider
        .state('home', {
            url: '/',
            templateUrl: '/assets/app/html/home.partial.html',
            controller: function($scope) {
                $scope.fetch = function(purchase) {
                    console.log("fetch is called, load data and show the grid");
                    $scope.grid = {};
                    $scope.grid.isActive = true;
                    //how to refresh purchases directive from here
                    //it should also pass the from and to dates
                    //based on that purchases will fetch the backend data
                }
            }
        })

}]);

我有一个指示购买,我试图重新加载,包括通过资源获取数据。当日期发生变化时,我想从后端再次查询数据并在Purchases指令内的网格上刷新它。

我使用ngResource插件,因此可以整理从后端获取数据。 加载页面时,链接功能只运行一次。

将from和to日期传递给指令的最佳方法是什么(检查plunker index.html)?

当日期改变时,我没有看到指令(链接功能)捡起它。我尝试了html id,名称和模型,但没有一个工作。

1 个答案:

答案 0 :(得分:0)

我假设您正在获取数据并将其提供给导演以根据它进行渲染。记住这一点有一个简单的方法来刷新"该指令及其使用ng-if。如果ng-if中的表达式为false,那么该指令将被销毁,如果它是真的则会被新实例化。如果基于新数据新实例化,那么它也将显示新数据。这是刷新指令的一种方法。

理想情况下,您的网格应根据AngularJS是否具有双向绑定而更改数据而无缝更改。如果您的代码不是以这种方式创建的,那么您只需使用ng-if。

刷新指令