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
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to