指令在ionicModal中首先符合,甚至在控制器加载

时间:2015-05-29 10:09:56

标签: javascript angularjs angularjs-directive ionic-framework

我有一个$ ionicModal,在里面我有一个指令,让我们调用它<scrap-link-cards>,这将获取一个范围对象的双向数据绑定值。这是在$ ionicModal模板中: - &gt;

<scrap-link-cards datasource=(updates.update_links)> </scrap-link-cards> 

这是我的完整指示:

.directive('scrapLinkCards', function ($log) {
        var controller = function ($scope) {
            $scope.links = angular.copy($scope.datasource); //undefined
            $scope.LastIndex = $scope.links.length - 1;
        };
       var templateUrl ='/path/to/template' ;

        return{
            restrict :'E',
            controller: controller,
            scope: {
              datasource :'='
            },
            templateUrl : templateUrl
        }
    })

这是我的templateUrl&#39;模板:

<div class="scrapLinks">
    <h3>{{links[LastIndex].title}}</h3>
    <p>{{links[LastIndex].description}}</p>
</div>

请注意,这是在$ ionicModal:

$ionicModal.fromTemplateUrl('path/to/template/html', {
        scope: $scope,
        animation: 'slide-in-up'
    }).then(function ($ionicModal) {
        $scope.ReadMore = $ionicModal;
});

现在这是我的问题,因为它在$ ionicModal 中,HTML得到了编译,在angular可以访问(updates.updates_links)之前。我在$scope.links得到一个未定义的对象。我该如何解决这个问题?我已经尝试使用指令的链接功能,(移动链接中的所有逻辑)仍然..我认为$ ionicModal模板是在控制器加载之前编译的?是吗?

1 个答案:

答案 0 :(得分:1)

我设法创建的唯一工作是停止编译功能以达到Modal的指令。使用ng-if并使用div包装指令。

在模态的模板中:

<div ng-if="updates"> <scrap-link-cards datasource=(updates.update_links)> </scrap-link-cards> </div>

这样编译器就会离开指令,只有在用户打开模态时才符合。