I could not understand why it is so hard. I just thought it was something very similar what is shown in this video:
https://www.youtube.com/watch?v=QdjZyOkcG_w (code is here: https://github.com/apache/incubator-zeppelin/pull/27) Where, there is a dropdown list whose value is binded to an Angular/Scala variable. And any change on this variable (in front-end), can be detected from zeppelin side (back-end). I am just trying to do something similar, but I just need to access the variable within a js function. Why is it so different and seems impossible without playing with the source of zeppelin? Thanks. On Tue, Aug 18, 2015 at 5:33 PM, DuyHai Doan <doanduy...@gmail.com> wrote: > Personnally I tried to modify the source code of the Zeppelin > notebook.controller.js to add a new method "pushAngular" to trigger update > from front-end to back-end. But it requires some knowledge of AngularJS. > > On Tue, Aug 18, 2015 at 3:39 PM, hasan türken <turk...@gmail.com> wrote: > >> Thanks for quick response. >> Checked the lines you shared, but I am new to Front-end development and >> could not imagine how and where to access and play with the compileScope (I >> think it is compiledScope, as I saw in the code you linked). >> Should I try to access it within my dblclick function? Or from scala side >> ? >> >> On Tue, Aug 18, 2015 at 4:18 PM, DuyHai Doan <doanduy...@gmail.com> >> wrote: >> >>> This is very tricky. I had a look into the source code of the Angular >>> object binding system and it appears that there is an isolated compile >>> scope: >>> >>> Definition: >>> https://github.com/apache/incubator-zeppelin/blob/master/zeppelin-web/src/app/app.controller.js#L17 >>> >>> Usage: >>> https://github.com/apache/incubator-zeppelin/blob/master/zeppelin-web/src/app/notebook/notebook.controller.js#L466-L469 >>> >>> You need to play with the compileScope to trigger any update from the >>> front-end to the back-end >>> >>> On Tue, Aug 18, 2015 at 3:02 PM, hasan türken <turk...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> First of thanks for the awesome Angular interpreter, which seems to >>>> have a big potential. >>>> I am trying to detect a change on an Angular variable using the Angular >>>> interpreter. I am changing the Angular variable within a javascript >>>> function, see the result but binded scala object does not change. >>>> >>>> I am binding with: >>>> >>>> *var selectedNode = "none"* >>>> *def plotter = {* >>>> * ...* >>>> >>>> * z.angularBind("selectedNode", selectedNode)* >>>> * z.angularUnwatch("selectedNode")* >>>> * z.angularWatch("selectedNode", (before:Object, after:Object) => {* >>>> * z.run(2)* >>>> * })* >>>> * ...* >>>> *}* >>>> >>>> Then: >>>> >>>> * %angular* >>>> *<div id="tree_1">* >>>> * <h2>Selected Node: {{selectedNode}}</h2>* >>>> * </div>* >>>> >>>> I can see "Selected Node: none" >>>> >>>> I have a node and I set a dblclick function on it: >>>> >>>> * function dblclick(d) {* >>>> * var scope = angular.element($("#tree_1")).scope();* >>>> * scope.$apply(function(){* >>>> * scope.selectedNode = d.name <http://d.name>;* >>>> * console.log(d.name <http://d.name>);* >>>> * })* >>>> >>>> When I double click a node, it successfully sets the selectedNode >>>> variable, since I can see the name as: >>>> >>>> Selected Node: some-node-name >>>> >>>> But the problem is, it is not reflected to scala side, i.e. when I run: >>>> >>>> * println(selectedNode)* >>>> >>>> I can not get the updated name also can not detect any change even I >>>> set with angularWatch. >>>> >>>> Thanks in advance, >>>> Hasan >>>> >>>> >>>> >>>> >>> >> >