AngularJS在div中使用ng-click

时间:2015-03-16 19:54:22

标签: javascript html angularjs model-view-controller ionic-framework

我无法点击工作,我正在尝试在div中传递一个url,所以当用户点击它进入下一页时,但是当我点击div时我可以看到它正在获得正确的链接,但它不会转到下一页,而是返回到家中。

<div ng-repeat="contatosCliente in contatos" class="conteudo" type="item-link" ng-click="urlcontato('#/app/contatos/' + contatosCliente.contatos_id)">
                     {{contatosCliente.nome}}
                    <i class="ion-ios-arrow-right" style="border: none; padding-right: 11px"></i>

                </div>

我的控制员:

 $scope.urlcontato = function ( path ) {
            $location.path( path );
        };

3 个答案:

答案 0 :(得分:2)

$location.path应该只使用正斜杠调用,没有那个散列。

https://docs.angularjs.org/api/ng/service/$location

<div ng-repeat="contatosCliente in contatos" class="conteudo" type="item-link" ng-click="urlcontato('/app/contatos/' + contatosCliente.contatos_id)">

您应该检查以确保您的视图绑定到您的控制器。在函数中添加一些日志记录,或使用调试器语句,以确保调用urlcontato

答案 1 :(得分:2)

首先路径应始终以正斜杠(/)开头,否则会自动追加。删除#,它应该工作

<div ng-repeat="contatosCliente in contatos" class="conteudo" type="item-link" ng-click="urlcontato('/app/contatos/' + contatosCliente.contatos_id)">
                 {{contatosCliente.nome}}
                <i class="ion-ios-arrow-right" style="border: none; padding-right: 11px"></i>

            </div>

答案 2 :(得分:1)

由于离子框架使用ui-router进行路由,您应该这样做:

$scope.urlcontato = function ( state ) {    
    $state.go(state);
}

当然,您必须在Controller(或指令)中注入$ state服务。

对于html代码中的默认链接,您应该使用

<a ui-sref="yourstate">Linktitle</a>

有关详细信息,请参阅this Navigation and Routing Article