Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript函数获取angularJS控制器的ID_Javascript_Asp.net Mvc_Angularjs - Fatal编程技术网

如何从javascript函数获取angularJS控制器的ID

如何从javascript函数获取angularJS控制器的ID,javascript,asp.net-mvc,angularjs,Javascript,Asp.net Mvc,Angularjs,我在cshtml页面上有这个javascript函数,希望从这个函数访问这个页面的角度控制器上的id。我如何访问 var id; function scheduler_change(e) { var view = this.view().element; view.off("click").on("click", ".k-event", function () { var events = e.events; if (events.length)

我在cshtml页面上有这个javascript函数,希望从这个函数访问这个页面的角度控制器上的
id
。我如何访问

 var id;
function scheduler_change(e) {
    var view = this.view().element;
    view.off("click").on("click", ".k-event", function () {
        var events = e.events;
        if (events.length) {
             id = events[events.length - 1].appointmentID;
            var cat = events[events.length - 1].category;
            var subject = events[events.length - 1].title;
            var cuid = events[events.length - 1].cuid;
        }
    });
}

@格伦迪是对的。由于Id是一个全局变量,您应该能够从angular访问它。但问题是,当启动scheduler_change时,如果event.length有一个值,则Id将得到更新。但是Angular没有办法知道这一点

这是因为角度变化检测发生在angular的边界内,而Id(现在是)在边界外

一个可能的解决方案是使用可观察的对象。请注意,这尚未得到广泛支持。 下面的帖子讨论了滚动您自己的可观察对象。这可能会有所帮助


幸运的是

id在这里是全局变量,所以你可以直接使用它。是的,我试过了,但它没有定义。我想在为同一cshtml页面创建的angular controller中使用此id。在单击之前可以未定义此id,但在if
events.length
之后不应未定义此id。这是一种糟糕的设计。为什么不把代码移植到angular中呢?应该明确地读到: