あなたのおかげで、それは私を助けてくれました。
私はそれに応じて方法を変更しました。私は#の間にURLを直接追加したくない。私はリンクのテキストと私が作成した参照の間の対応を見つけることを可能にするサービスを呼び出します。
そこで私は、参照を作成しました:
referential.json
{
"lollianus_primae" : {
"link" : "lollianus",
"content" : "torvum renidens fundato pectore mansit inmobilis nec se incusare nec quemquam alium passus et tandem nec confessus nec confutatus..."
},
"nulla_suffragiorum" : {
"link" : "nullasuffragiorum",
"content" : "torvum renidens fundato pectore mansit inmobilis nec se incusare nec quemquam alium passus et tandem nec confessus nec confutatus..."
},
"exploratius" : {
"link" : "exploratius",
"content" : "torvum renidens fundato pectore mansit inmobilis nec se incusare nec quemquam alium passus et tandem nec confessus nec confutatus..."
},
}
は、それから私は、テキストの各部分を書式設定できますディレクティブを作成した(スパンまたはリンクということですもしそうなら、私は? addActionToLinkディレクティブを追加してください)。
(function() {
'use strict';
angular
.module('project')
.directive('formatText', formatText);
/** @ngInject */
function formatText($compile) {
var directive = {
restrict: 'A',
replace:true,
scope : {
texte : '='
},
link: function (scope, elem, attrs) {
if (scope.texte.indexOf('_') !== -1){
// this is a link
var link = scope.texte;
var content = scope.texte.replace('_', ' ');
elem.replaceWith($compile('<a add-action-to-link id="'+link+'">' + content + "</a>")(scope));
} else {
elem.replaceWith($compile("<span>" + scope.texte + "</span>")(scope));
}
}
};
return directive;
}
})();
addActionToLinkディレクティブは、要素に可能なアクションを追加します。 アクションが取られる場合には、開口部の担当サービスに情報を送信し、ポップアップに
(function() {
'use strict';
angular
.module('project')
.directive(addActionToLink, addActionToLink);
/** @ngInject */
function addActionToLink(dimensionsService, DefinitionService) {
var directive = {
restrict: 'A',
link: function (scope, elem, attrs) {
if (dimensionsService.estUnFormatDesktop()) {
elem.bind("mouseover", function() {
console.log(attrs);
DefinitionService.recupereReferential (attrs.id).then(function (res) {
DefinitionService.ouverturePopupEttransmissionInfosSurCetteDefinition(res.data, attrs, elem[0]);
}) ;
});
} else {
elem.bind("click", function() {
console.log(attrs);
DefinitionService.recupereReferential (attrs.id).then(function (res) { DefinitionService.ouverturePopupEttransmissionInfosSurCetteDefinition (res.data, attrs, elem[0]);
});
});
}
}
};
return directive;
}
})();
を供給する。これは、テンプレートは次のようになります。
<p>
<ng-bind ng-repeat="text in page.text track by $index" format-text texte="text"></ng-bind>
</p>
情報を取得するサービスとポップアップを開くことはまだビルの下にあります。 もう一度、ありがとう。私はもはや詰まらない。