2017-04-04 39 views
-2

我需要幫助完成項目。我在使用angularjs將標記加載到HTML HEAD時遇到問題。AngularJS服務API。共享鏈接時不要加載標題標籤

我相信的問題是,當我分享一個鏈接在WhatsApp,Facebook等竊賊,不加載AngularJS,因此不加載變量的數據,因此只顯示「源代碼」。

正確: enter image description here

錯誤: enter image description here

版本:AngularJS V1.6.1

代碼的html:

<!DOCTYPE html> 
<html ng-app="ecApp" ng-controller="ecCtlr"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=0" /> 
     <meta name="fragment" content="!"> 
     <title>{{produto.nome}}</title> 
     <meta name="description" content="{{produto.texto_descricao}}" /> 
     <script src="angular.min.js"></script> 
     <script src="app.js"></script> 
     <script src="factory.js"></script> 
     <script> 
     var idLoja = 858; 
     function carregaScope() { 
      var scope = angular.element($('#ecCtlr')).scope(); 
      scope.$apply(function() { 
      scope.buscaProduto(670706); 
      }); 
     } 
     </script> 
    </head> 
    <body onLoad="carregaScope();" id="ecCtlr"> 
    </body> 
</html> 

角APP:

var api = 'http://localhost/api/'; 
var app = angular.module('ecApp', []); 

app.controller('ecCtlr', function ($scope, $sce, ECProdutos) { 

    $scope.buscaProduto = function(idProduto) { 
     ECProdutos.buscaProduto(idLoja, idProduto).then(function (produto) { 
      $scope.produto = produto; 
      $scope.produtoPai = produto; 
     }); 
    }; 
}); 

廠:

angular.module("ecApp").factory("ECProdutos", function ($q, $http) { 
    var urlClass = 'ec/produto/'; 
    return { 
     buscaProduto: function (idLoja, idProduto) { 
      var promessa = $q.defer(); 

      $http.get(api + '' + urlClass + 'buscaProduto/' + idLoja + '/' + idProduto).then(
       function (result) { 
        promessa.resolve(result.data); 
       } 
      ); 

      return promessa.promise; 
     } 
    }; 
}); 
+3

1)你的代碼在哪裏? 2)由於我們看不到你的代碼,因爲你在問題中提到了兩個,所以我們不知道你是否使用了Angular1或者2 ...所以任何人都很難幫助你。 –

+0

@HunterTurner編輯,謝謝 –

回答

0

的WhatsApp和Facebook爬蟲不要運行JavaScript代碼(但:-)),

我更喜歡以下解決方案:在後端服務器上託管兩個html頁面,第一頁是社交共享從站,另一個是目標頁面

第一頁: 此頁面是社交分享的「奴隸」,我們稱之爲WhatsAppOrFacebook.html。它具有社交分享的硬編碼屬性:頁面標題,說明,預覽圖像等,全部爲硬編碼。它有一個小腳本將用戶重定向到第二頁(例如,使用以下命令:window.location ='second-page.html')。

第二頁:此頁面是的目標頁面,它與你的AngularJS代碼或其他任何框架代碼庫構建,用戶被重定向到該頁面從「第一頁」(或fromWhatsAppOrFacebook.html)。

希望它有幫助!