应用内浏览器无法加载页面

时间:2015-03-19 13:57:05

标签: javascript angularjs angularjs-ng-repeat hybrid-mobile-app inappbrowser

我最近尝试在我的应用上创建应用内浏览器功能。该功能有效,但不会加载页面。我在包含url的JavaScript中创建了一个数组,然后我创建了一个ng-repeat来填充列表。列表中的每个内容都需要将用户带到不同的页面。有人可以告诉我哪里出错了吗?

我的阵列:

.factory('UsefulData', function($http){

  var useful = [
    {
      "id": 1,
      "name": "Services",
      "img": "img/useful/services.png",
      "url": "http://www.amazon.co.uk/",
    },
    {
      "id": 2,
      "name": "Plan",
      "img": "img/useful/communications.png",
      "url": "http://www.bbc.com/sport/0/",
    }
  ];

  return {
    all: function() {
      return useful;
    },
    get: function(usefulId) {
      // Simple index lookup
      return useful[usefulId];
    }
  }

我的清单:

<ion-list>
  <ion-item class="item-remove-animate item-avatar item-icon-right" ng-repeat="data in useful" type="item-text-wrap" onclick="window.open('{{data.url}}', '_blank', 'location=yes')">
    <img class="imgSize" ng-src="{{data.img}}">
      {{data.name}}
    <i class="icon ion-chevron-right icon-accessory"></i>
  </ion-item>
</ion-list>

我的控制器:

angular.module('Mobilisation').controller('UsefulCtrl', function($scope, $state, $http, $rootScope, UsefulData) {

  $scope.useful = UsefulData.all();

})

1 个答案:

答案 0 :(得分:0)

仅在工厂内创建变量不会在其中一个视图中提供变量。

常规方法是将变量添加到scope内的controller

所以你的工厂方法会像这样返回useful的内容:

.factory('UsefulData', function($http){
  var factory = {};

  factory.useful = [
    {
      "id": 1,
      "name": "Services",
      "img": "img/useful/services.png",
      "url": "http://www.amazon.co.uk/",
    },
    {
      "id": 2,
      "name": "Plan",
      "img": "img/useful/communications.png",
      "url": "http://www.bbc.com/sport/0/",
    }
  ];

  return factory;
}

你的控制器看起来像这样:

.controller('UsefulController', function($scope, UsefulData) {
    $scope.useful = UsefulData.useful;
});

现在您需要做的就是确保来自控制器的范围在ng-controller="UsefulController"的视图中可用,并且您的链接应该可用。