我是AngularJS的新手。 我一直在开发一个显示列表的网站。 列表中的每个元素都是从服务器以字符串形式传递的。 在每个元素中,我使用条形作为我希望用户能够点击的关键字的度量(即这是此元素中的 |关键字|
我使用控制器/过滤器来创建 html 以删除分隔符并使关键字变为红色(使用类(。 所以html看起来最终看起来像这样:
<span ng-controller="formatForGlossaryAndCodeTextCtrl" class="ng-scope">
<span ng-bind-html="formattedLineItem" class="ng-binding">
this is a
<span class="glossaryLookup" >keyword</span> <!--here is my keyword-->
in this element
</span>
</span>
我尝试让过滤器也生成ng-controller=xxx
和ng-click=xxx
以保持在角度世界中,但这不起作用(当我这样做时,我的关键字不可点击(。
我确实有 jQuery 代码,它将点击事件绑定到带有class=glossaryLookup
的元素。 当我单击关键字时,它当前会显示警报。
我不知道如何让该单击以显示角度模态对话框。 我希望它使用角度模态对话框,因为同一应用程序的另一部分已经显示角度模态对话框,我希望保持一致
所以,简而言之...服务器向浏览器传递包含一个或多个分隔单词的字符串。 我希望浏览器上的角度/js/jquery代码不仅可以突出显示分隔的单词,还可以单击它们,查找定义(我不关心如何查找定义,至少现在还没有(并在$uibModal
中显示该定义。
感谢您的任何帮助。
我想我实际上想通了。 我创建了一个 dummydiv 并给了它一个 id (id=dummydiv(。 我"分配"一个控制器给那个div(ng-controller=dummyCtrl(。
`<div id=dummydiv ng-controller=dummyCtrl></div>`
在将 click 事件绑定到我的关键字的 jQuery 代码中,我使用以下代码行在显示对话框的虚拟控制器中运行函数:
`$(document).ready(function () {
$(document)
.on("click", ".glossaryLookup", "NEED TO LOOKUP IN GLOSSARY", function (x) {
angular.element($("#dummydiv")).scope().testclick();
})
.on("click", ".codeTextLookup", "NEED TO LOOKUP CODE TEXT", function (x) {
alert(x.data)
})
});`
顺便说一句 - 虚拟控制器看起来像这样:
`//DUMMY CONTROLLER TO TEST DYNAMIC CLICK
Hydroware_Checkbox_List_Prototype_App.controller('dummyCtrl', function ($scope, $uibModal) {
$scope.testclick = function () {
alert("I WAS CLICKED BUDDY");
var modalInstance = $uibModal.open({
templateUrl: 'line_item_help.html',
controller: "LineItemHelpDialogCtrl",
scope: $scope
});
};
});`