角度修改元标记

时间:2013-12-27 20:59:44

标签: angularjs

我有一个元标记(苹果智能横幅),我想动态修改参数。但它目前无法正常工作:

我假设在创建头之前调用ng-init?如果是这样,我可以通过加载方法修改元数据吗?

这是html:

<!doctype html>
<html lang="en" ng-app="myApp" class="passWindowDimensions">
<head>
    <meta charset="utf-8">
    <title>XXXXXX</title>
    <link rel="stylesheet" href="css/app.css"/>
    <link rel="stylesheet" href="css/bootstrap.css"/>

    <meta name="apple-itunes-app" content="app-id=XXXXXXX, app-argument = {{paramRId}}">

    <!--Let search engines know we are a single page ajax app-->
    <meta name="fragment" content="!">

    <script src="js/JQuery.js"></script>
    <script src="js/searchFunctions.js"></script>


</head>

部分:

<div data-ng-init="loadMe()" div class="col-md-12 passWindowDimensions">

控制器:

/**
         * Loading sequence. Loads the results
         */
        $scope.loadMe = function(){

          $scope.paramRId = 'test';


       };

3 个答案:

答案 0 :(得分:4)

页面的哪一部分是您的控制器负责的?我无法在小提琴中测试这个,因为头标不在限制,但在我看来,你可能只需要改变

$scope.paramRId = 'test';

$scope.$root.paramRId = 'test';

答案 1 :(得分:4)

尝试服务和指令

http://jsfiddle.net/VnXYB/

module.factory("smartBanner", function() {
    return {
        appId: "",
        appArgument: ""
    }    
});
module.directive("smartBanner",function(smartBanner){
    return {
        restrict: "E",
        template: '<meta name="apple-itunes-app" content="app-id={{smartbanner.appId}}, app-argument = {{smartbanner.appArgument}}"></meta>',
        replace: true,
        link: function(scope) {
            scope.smartbanner = smartBanner
        }
    } 

});
module.controller("TestCtrl", function($scope,smartBanner){
    $scope.update = function() {
        smartBanner.appId=$scope.appId;
        smartBanner.appArgument=$scope.appArgument;
    };
});

答案 2 :(得分:4)

angular meta模块管理您的标题标签和元描述。它使用与$ routeProvider相同的API,因此它非常容易配置。

https://github.com/monyiliev/angular-meta