由于某种原因,我无法获得头元素中元素属性的绑定。令人惊讶的是,相同的绑定对head元素中的元素起作用。
我已经粘贴了我在下面使用的代码。 title元素被正确绑定,但相同的绑定不适用于meta属性=" og:title"元件。我已尝试过内容=" {{var}}"和ng-attr-content =" {{var}}"。任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题?
我在Chrome开发者控制台中看到以下内容:
的index.html:
<!DOCTYPE html>
<html ng-app="test">
<head>
<title ng-bind="documentTitle"></title>
<meta property="og:title" ng-attr-content="{{ documentTitle }}" />
<meta name="description" ng-if="documentDescription" ng-attr-content="{{ documentDescription }}" />
<meta name="fragment" content="!">
<meta name="prerender-status-code" ng-attr-content="{{statusCode}}">
<base href="/" />
{% include 'stylesheets.html' %}
</head>
<body>
{% include 'javascripts.html' %}
</body>
</html>
test.js:
function run($http, $locale, $rootScope, $route, Head) {
$rootScope.$on('$routeChangeSuccess', function() {
Head.setTitle($route.current.meta.title);
Head.setDescription($route.current.meta.description);
Head.setStatusCode('200');
});
}
主管服务:
(function ($, _) {
'use strict';
angular
.module('test.utils.services')
.factory('Head', Head);
Head.$inject = ['$rootScope'];
function Head($rootScope) {
var Head = {
setStatusCode: setStatusCode,
setTitle: setTitle,
setDescription: setDescription
};
return Head;
function setStatusCode(statusCode) {
$rootScope.statusCode = statusCode;
}
function setTitle(title) {
$rootScope.documentTitle = title;
}
function setDescription(description) {
$rootScope.documentDescription = description;
}
}
})($, _);
答案 0 :(得分:0)
将所有头部变量放在像这样的对象中
而不是$rootScope.statusCode = statusCode;
放$rootScope.head.statusCode = statusCode;
然后在html
中使用它 <meta property="og:title" ng-attr-content="{{ documentTitle }}" />
到<meta property="og:title" ng-attr-content="{{ head.documentTitle }}" />
字符串不在组件之间绑定,只绑定对象
答案 1 :(得分:0)
我终于开始工作了。问题是Django以某种方式弄乱了模板。在Django不应解析的部分周围添加{%verbatim%}和{%endverbatim%}后,问题就解决了。