ng-click没有触发$ scope.doSomething(),onclick用于相同的功能

时间:2015-09-09 19:09:51

标签: javascript angularjs

我正在使用的控制器是:

angular.module('app.PostView', [])

.controller('PostViewCtrl', function($scope, $http, Constants) {


    $scope.posts = [];      
    $scope.doSomething = function(){
        console.log("in doSomething");
    }

    $http.get(Constants.POST_URL)
        .then(function (response){
            console.log(response);

            var post = new PostFactory(response.data);

            $scope.posts.push(post);



        });


})

控制器的视图是

<div ng-repeat="post in posts" >
  <div class="home-container">
    <div id="details-container">
          <!-- using single item Array instead of single iftem to fix linkify bug -->
        <div ng-bind="post.desc"></div>
        <span class="item-note single-post-details">
          <!-- <div class="time-text">{{post.id}}</div> -->
          <div class="title" >{{post.title}}</div>
        </span>
        <a ng-click="doSomething()" href="#" >{{post.name}}</a>
    </div>
  </div>
</div>

如果我用onclick替换ng-click,则触发doSomething。目前它不是。其他控制器/视图中的相同Controller和html代码确实有效。

2 个答案:

答案 0 :(得分:0)

当您点击主播时,它会将路由更改为http://url/#,并通过$routeProvider&amp; ng-view会加载您所看到的默认视图和模板。

基本上,您需要从锚链接中删除href="#",或者只在该锚点中放置href=""空白。那样可以解决你的问题。

 <a ng-click="doSomething()" href="" >{{post.name}}</a>

答案 1 :(得分:0)

完全删除href

<a ng-click="doSomething()" 
   style='cursor:pointer' >{{post.name}}</a>