目前,我有一些像这样的代码
<div id="{{id}}" ng-controller="ngController as ngCtrl" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<!-- Removed some non important html -->
<script src="/static/jstree/dist/jstree.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.getJSON("/book/modules", function(d) {
var moduleDiv = $("#module-div")
moduleDiv.jstree({
core: {
data: d
}
});
moduleDiv.on("select_node.jstree", function(e, data) {
ngCtrl.selectedModule = data;
});
});
});
</script>
</div>
</div>
此代码包含在angular指令中。
app.directive("modulesModal", function(){
return {
scope: {
label: "@",
input: "@",
ngController: "=",
id: "@"
},
templateUrl: "/static/book_config/html/modules-modal.html",
link: function($scope, $elem, $attrs){
// Non important stuff
}
};
});
所以我真正想做的是在这里访问一些控制器变量
moduleDiv.on("select_node.jstree", function(e, data) {
ngCtrl.selectedModule = data;
});
这样我只需通过指令标签将控制器插入其中: E.g
<modules-modal id="myModal" ng-controller="newBookCtrl"></modules-modal>
解决这个问题的正确方法是什么?
答案 0 :(得分:2)
组合jquery和angular的方法是创建一个angular指令,你做了。但是,您应该在指令中移动jquery代码,而不是在外部执行它并将数据传递给指令。在这种情况下,您可以创建一个指令控制器,然后在控制器本身中加载您的json数据。它应该是这样的(未经测试的代码):
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class DVLAresult extends AppCompatActivity {
Bundle bundle = getIntent().getExtras();
String finalPlateNumber = bundle.getString("PlateNumber");
}