gpt4 book ai didi

angularjs - Mithril 与 angularjs

转载 作者:行者123 更新时间:2023-12-02 23:18:47 25 4
gpt4 key购买 nike

我是 Mithril JS 框架的新手,正在尝试将 Mitril View 与 angularJS 集成。有人尝试过吗?

我想检查如何将 Angular Controller 方法绑定(bind)到 Mitril 中创建的元素的单击事件。

我通过这段代码得到了这个工作

var e = document.getElementById('elementId');
var scope = angular.element(e).scope();
m("a[href='javascript:;']", {
onclick : scope.someMethod
}, "Test");

但我不确定这是否是正确的方法。

最佳答案

我想说这不是惯用的 Angular 代码。

更惯用的方法可能是在 Angular 端使用指令,并将事件调度程序 Controller 传递给 mithril 端的 View :

//mithril code
var testWidget = function(ctrl) {
return m("a[href='javascript:;']", {onclick: ctrl.onclick}, "Test")
}

//angular code
angular.module("foo").directive("testWidget", function() {
return {
restrict: "E",
link: function($scope, element, attrs) {
var template = testWidget({
onclick: function() {
$scope.$apply(function() {
$scope.$eval(attrs.onclick)
})
}
})
m.render(element, template)
}
}
})

angular.module("foo").controller("MyCtrl", function() {
this.doStuff = function() {
console.log("called doStuff")
}
})

<div ng-controller="MyCtrl as c">
<test-widget onclick="c.doStuff()"></test-widget>
</div>

关于angularjs - Mithril 与 angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com