2016-09-16 12 views
0

私の角型アプリケーションでページタイトルを動的に設定しようとしています。角度uiRouterデータベースドキュメントのページタイトルを設定します

私はすでにそれが状態

.state('faq-detail', { 
    url: '/faqs/:faqId', 
    templateUrl: 'client/faq/faq-detail.view.ng.html', 
    controller: 'FaqListCtrl', 
    data: { 
     title: 'Faq details' 
    } 
    }); 

に基づいて変更することが、私は、この場合は質問タイトルを取得し、ページタイトルとしてそれを置きたい動的にハードコードされたタイトルで作業していました。

質問はmongoデータベースから来て、私は角流星を使用しています。

.state('faq-detail', { 
    url: '/faqs/:faqId', 
    templateUrl: 'client/faq/faq-detail.view.ng.html', 
    controller: 'FaqListCtrl', 
    data: { 
     title: Faq.findOne({_id: $stateParams.faqId}).question 
    }, 
    resolve: { 
     theFaq: function ($meteor, $stateParams) { 
     return $meteor.subscribe('faq').then(function() { 
      return Faq.findOne({_id: $stateParams.faqId}); 
     }); 
     } 
    } 

私はこれを試してみたが、あなたが知っているかもしれないとして、$stateParamsdata.title領域にdefiendされていません。

私が試した他の方法は、このいずれかになります。

// ATEMPT TO SET THE TITLE DYNAMICALLY WITH THE QUESTION 
$scope.autorun(() => { 
    console.log($scope.getReactively('theFaq')); 
    if ($scope.theFaq) { 
    let faqTitle = $scope.getReactively('theFaq').question; 
    // $state.get('faq-detail').data.title = faqTitle; 
    $state.current.data.title = faqTitle; 
    } 
}); 

しかし、私は同じコントローラを持つ別のビューをロードした後、これは代わりにタイトルを設定します。だから、私は現在のビューの代わりに最後に訪問したビューのタイトルを持っています。私は、角度-流星にMongoのコレクションから返されたオブジェクトのキー値からページタイトルを設定するにはどうすればよい

質問

答えて

0

私にとって、あなたが望むものを達成する最もクリーンな方法は、コントローラで行うことです。例:

angular.module('mymodule').controller('FaqListCtrl', function($stateParams, $window){ 
    let title = Faq.findOne({_id: $stateParams.faqId}).question; 
    $window.document.title = title; 
}) 
関連する問題