Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
Angularjs 如何创建可单击的表格行,这些行以角度路由到同一部分?_Angularjs_Routes - Fatal编程技术网

Angularjs 如何创建可单击的表格行,这些行以角度路由到同一部分?

Angularjs 如何创建可单击的表格行,这些行以角度路由到同一部分?,angularjs,routes,Angularjs,Routes,我对AngularJS是新手。 我从服务器获取一些项目到表中。 现在,我希望能够单击任何表行,然后路由到特定的部分。让我们把它命名为item info 我还希望我的路由更改为类似/{item.name}的内容。我不想每次都指定路由名称,因为我不知道用户单击的是哪一行。 另外,我不想丢失用户在上一页中单击的项目。我需要'item.name'元素 我不确定是否应该使用ng click或带有href=/item.name的简单标记 <td><a href="#/item-info"&

我对AngularJS是新手。 我从服务器获取一些项目到表中。 现在,我希望能够单击任何表行,然后路由到特定的部分。让我们把它命名为item info 我还希望我的路由更改为类似/{item.name}的内容。我不想每次都指定路由名称,因为我不知道用户单击的是哪一行。 另外,我不想丢失用户在上一页中单击的项目。我需要'item.name'元素

我不确定是否应该使用ng click或带有href=/item.name的简单标记

<td><a href="#/item-info">{{item.name}}</a> </td>
谢谢,

试试这个:

<div ng-controller="ctrl">
    <td><a ng-click="onclick($event)" href="#/item-info">{{item.name}}</a> </td>
</div>

最后,我可以为我的点击操作设置一个ng href,如下所示:

ng href=/{{item.id}

然后在我的routeProvider中:

$routeProvider.when'/:id',{templateUrl:'item detail.html',controller:'itemdailcontroller'}

然后在我的ItemDetailController中,我使用$routeParams.id访问url中显示的内容,这将使用routeProvider中显示的:id部分

但现在我的问题是,我没有写$routeProvider。当“/:id”时,我在提供程序中写$routeProvider。当“/:item id”时,不知何故,破折号字符把它搞砸了!!
我删除了它,现在我的程序知道$routeParams.id,我使用它。

ng单击,因为您想做的不仅仅是更改routesok,您能解释更多吗?如果我使用ng click=go,它是否有参数?我应该如何在我的控制器中定义$scope.go函数以便能够路由到我想要的url?ng click=go$event-function go$event{var href=angular.element$event.target.attrref;…}。感谢您的回答,但是您能更具体地说明href吗?如果我想路由到/测试,我应该把它放在哪里?原因属性/测试;}没用,没用。当我点击时,什么也没发生。我正试图通过$routeParams.item-id来实现这一点,这样我就可以将我的url设置为/:item-id。但这种方法也不起作用,当我单击时,什么也不会发生:我建议您在不单击ng的情况下先让您的初始achor链接工作,然后再尝试这种方法。
app.controller('ctrl', function($scope, $location) {
   $scope.onclick = function($event) {
        $event.preventDefault();
        // do extra stuff
        var href =  angular.element($event.target).attr('href');
        $location.path(href);
   }); 
});