我有一个元标记(苹果智能横幅),我想动态修改参数。但它目前无法正常工作:
我假设在创建头之前调用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';
};
答案 0 :(得分:4)
页面的哪一部分是您的控制器负责的?我无法在小提琴中测试这个,因为头标不在限制,但在我看来,你可能只需要改变
$scope.paramRId = 'test';
到
$scope.$root.paramRId = 'test';
答案 1 :(得分:4)
尝试服务和指令
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,因此它非常容易配置。