当前位置: 首页 > 面试题库 >

有没有一种简单的方法可以使用按钮来浏览页面,就像angularjs中的链接一样

张和颂
2023-03-14
问题内容

在angularjs中,我想像这样使用button,但是我仍然需要寻找按钮。

<button href="#/new-page.html">New Page<button>

就像a(链接)那样

<a href="#/new-page.html">New Page</a>

有没有比这更简单的方法?

<button ng-click="newPage()">New Page<button>
$scope.newPage = function (){
    location.href = '#/new-page.html';
};

注意:从根本上说,当我习惯于location.href导航时,整个页面会刷新,并且导航不受angularjs的控制。如果我不使用链接,如何在javascript代码中导航页面?

我是否需要创建一个自定义指令来实现?


问题答案:

ngClick是正确的;您只需要正确的服务。$location是您要寻找的。查看文档以获取全部详细信息,但是针对您特定问题的解决方案是:

$location.path( '/new-page.html' );

$location服务将根据您当前的设置在适当的情况下添加哈希(#),并确保不会发生页面重新加载。

如果这样选择,您还可以使用指令做一些更灵活的事情:

.directive( 'goClick', function ( $location ) {
  return function ( scope, element, attrs ) {
    var path;

    attrs.$observe( 'goClick', function (val) {
      path = val;
    });

    element.bind( 'click', function () {
      scope.$apply( function () {
        $location.path( path );
      });
    });
  };
});

然后您可以在任何东西上使用它:

<button go-click="/go/to/this">Click!</button>

有很多方法可以改进此指令;只是为了说明可以做什么。这是一个在实践中演示的Plunker:http
://plnkr.co/edit/870E3psx7NhsvJ4mNcd2?p=preview 。



 类似资料:
  • 我已经使用空手道6个月了,我真的对它提供的功能印象深刻。我知道空手道是为了单独测试API,但我们也试图将它用于E2E测试,这涉及到一步一步地调用多个场景。我们的功能文件如下1。调用功能1:Scenario1 2。调用功能2:Scenario2....注意:我们正在重新使用一个用于API测试和E2E测试的场景,有时我发现很难记住所有的特性文件。我们是否可以像java那样链式调用场景,我怀疑特性文件会

  • 问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask-principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask-principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会话。

  • 问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask- principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask- principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会

  • 问题内容: 我正在研究Java应用程序的一部分,该应用程序将图像作为字节数组,将其读入实例,然后将其传递给第三方库进行处理。 对于单元测试,我想获取一个图像(从磁盘上的文件中获取),并断言它等于代码处理过的同一图像。 我的 预期 是使用从磁盘上的PNG文件读取的。 我的 测试 代码将相同的文件读入A,并将其作为PNG写入字节数组,以提供给被测系统。 当被测系统将字节数组写入新数组时,我想断言这两个

  • 我一直在尝试制作这样的GUI: 然而,我遇到的困难是,我需要使按钮的文本可变-每个按钮应该提供不同的选项,可以在文本长度上有所不同。虽然这本身并不困难,但我尝试了无数不同的方法,但我无法让按钮居中,尽管它们的文本长度。无论我尝试什么,我总是有以下问题之一: 按钮不居中(左边有空间,但它们超过了右边的窗口) 由于某种原因,问题和Goodratio根据按钮大小更改位置 我不知道该怎么做。有没有人对做这

  • 问题内容: 上面显示了以下错误: 因此,我必须这样做: 但是,没有简单的方法可以做到这一点吗? 问题答案: 要删除列表中元素的首次出现,只需使用: 请注意,它不会删除所有出现的元素。为此使用列表理解。