在同一事件的所有控制器中执行相同的功能 - AngularJS

时间:2015-09-15 11:03:04

标签: javascript jquery angularjs twitter-bootstrap

当我通过网址更改视图时,我目前遇到Bootstrap Modal问题。 ReloadOnSearch已禁用。

如果我查看的内容如下:

  

blah.com/examples/1

并打开带有淡化背景的模态,然后更改URL以更改视图,例如:

  

blah.com/examples/2

模态窗口将关闭,但淡化的背景将保留,并禁用与网页的互动。

我想知道是否有办法定义一个函数,它将以编程方式删除淡入淡出的背景,无论使用何种控制器,都会在URL更改时执行。

虽然问题的原因是AngularJS,但解决方案并不需要使用AngularJS。

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,解决方案是在你的hashurl改变时删除那个覆盖类

if (isset($pic) && $pic != "") {
    $this->db->set("image", $pic);
}
if (isset($front) && $front != "") {
    $this->db->set("front_view", $front);
}
if (isset($left) && $left != "") {
    $this->db->set("left_view", $left);
}
if (isset($right) && $right != "") {
    $this->db->set("right_view", $right);
}
if (isset($back) && $back != "") {
    $this->db->set("back_view", $back);
}

// pr($data);

$this->db->where('user_id', $user_id);
$result = $this->db->update('fitness_users');

答案 1 :(得分:1)

使用事件onhashchange使用正确的隐藏方法隐藏屏幕上的所有模态:

window.onhashchange = function(event) {
    $('.modal').modal('hide');

    // You can even add some tests based on the new and old URL
    console.log('new URL', event.newURL);
    console.log('old URL', event.oldURL);
}