【问题标题】:How do you call an AngularJS $scope.Function from href?你如何从 href 调用 AngularJS $scope.Function?
【发布时间】:2013-08-01 04:35:59
【问题描述】:

以下工作从

调用函数 ActiveChange(variable)
a(href="javascript: ActiveChange('topStories');") Top Stories

但是如果函数被定义为AngularJS的$scope函数比如

function activeController ($scope) {    
    $scope.topStories='active';
    $scope.mostRecent='lucky';
    $scope.ActiveChange =   function (activeTab) {
        if(activeTab=='topStories'){
            var x=document.getElementById("someinput");
            x.value='happy to be alive';
            $scope.topStories='active';
            $scope.mostRecent='';
        }
        else {      
            alert('else');
            $scope.topStories='happy';
            $scope.mostRecent='active';
        }
    }
}

如何从 中调用 $scope.ActiveChange = function (activeTab)?

【问题讨论】:

  • 你没有使用ngClick有什么原因吗?
  • 是的,尽管这不是一个很好的理由。 (缺乏知识)感谢您的提醒。
  • 我在你的控制器中看到 DOM 引用了吗? ....你真丢脸:)

标签: javascript html angularjs


【解决方案1】:

就像@Mike 说的那样使用ngClick。我看不出在 href 中使用 angular 的原因。

类似:

<a href="" ng-click="ActiveChange('topStories');">Top Stories</a>

或者留空:

<a href ng-click="ActiveChange('topStories');">Top Stories</a>

【讨论】:

  • href 值应为javascript:void(0); 或留空 - 否则浏览器会将页面滚动到顶部。从 ng-click 表达式返回 false 不会阻止它的发生(我想这是正确的,因为如果作用域的方法必须知道它被调用的上下文,那就很奇怪了)
  • 还可以将 href 设置为“javascript:angular.noop();”而不是“#”或“void(0)”
猜你喜欢
  • 2014-01-26
  • 2014-04-02
  • 2013-04-26
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 2010-12-19
相关资源
最近更新 更多