在离子应用程序中不使用templateUrl呈现Angular指令

时间:2016-12-29 06:09:08

标签: angularjs ionic-framework angularjs-directive

在Chrome中 - 两个变体都有效。但是,在模拟ios时 - 使用templateUrl的指令工作。

在ios模拟器中不起作用,但在浏览器中有效:

angular.directive('listitems', function(ApiEndpoint) {
  return {
    restrict: 'A',
    templateUrl: '../template/listitems.ng.html',
    scope: true
  };
})

适用于ios模拟器,可在浏览器中使用

angular.directive('listitems', function(ApiEndpoint) {
  return {
    restrict: 'A',
    template: '<strong>listitems</strong>',
    scope: true
  };
})

在其他地方使用templateUrl在浏览器和ios模拟器中都可以正常工作。例如,当使用ui路由器时 - 我能够加载外部模板而不会出现问题:

$stateProvider.state('app.dashboard', {
  url: "/dashboard",
  views: {
    'menuContent': {
      templateUrl: '../template/dashboard.ng.html',
      controller: 'DigstackDashboard'
    }
  }
});

我的问题是 - 在指令的情况下,为什么templateUrl值不能仅在ios仿真器中工作?

1 个答案:

答案 0 :(得分:0)

发现问题!我希望这能帮助别人。

angular.config(function($sceDelegateProvider){
    $sceDelegateProvider.resourceUrlWhitelist([
         'self',
         'https://www.example.com/**'
    ]);
 }

即使在uirouter--这似乎并不需要。在ios仿真器中 - 需要此配置才能加载模板。