【问题标题】:AngularJS ng-click to go to viewAngularJS ng-点击查看
【发布时间】:2015-10-05 18:57:13
【问题描述】:

您好,我有一个按钮,上面有一个 ng-click 指令,我只想加载一个视图。我在网上查看了一些页面,但我无法弄清楚如何让按钮工作。我的按钮如下所示:

<button class="btn default-btn lookupbtn" ng-click="go('/lookup')">Lookup</button>

我的控制器是这样的:

(function () {

'use strict';

angular.module('crm.ma').controller('LookUpCtrl', LookUpCtrl, function($location){


    function LookUpCtrl() {
        var vm = this;

        vm.results = [
            {
                accountId: 1,
                accountName: 'some name',
                address: '201 some st',
                city: 'Columbus',
                state: 'OH',
                zip: 'zip',
                phone: '899-629-7645',
                parentName: 'Parent 1',
                accountType: 'Type 1',
                accountStatus: 'Status 1',
                creditTerm: 'Term 1'
            },
            {
                accountId: 2,
                accountName: 'house home',
                address: '2963 this st',
                city: 'Columbus',
                state: 'OH',
                zip: 'zip',
                phone: '899-627-7592',
                parentName: 'Parent 2',
                accountType: 'Type 2',
                accountStatus: 'Status 2',
                creditTerm: 'Term 2'
            }
        ];

        vm.go = function (path) {
            $location.path(path);
        };

    }        
})

}());

我对 Angular 很陌生,只是不确定自己做错了什么。如果需要任何其他代码,请告诉我。谢谢。

【问题讨论】:

    标签: javascript angularjs angularjs-directive angularjs-routing angularjs-ng-click


    【解决方案1】:

    您可以将该按钮转换为锚点并应用引导程序的 button 的 CSS 类,这将让您查看并填充按钮,然后使用 ng-href 属性在 SPA 内设置重定向 URL .

    <a class="btn btn-md" ng-href="#/lookup">Lookup</a>
    

    此外,正如@charlietfl 建议的,您需要添加缺少的$location 依赖项,如果您遵循第二种方式,还需要添加$scope

    【讨论】:

    • @hollyquinn 很高兴为您提供帮助..谢谢 :)
    【解决方案2】:

    控制器定义不正确。应该是这样的:

    angular
      .module('crm.ma')
      // only 2 arguments, name and function
      .controller('LookUpCtrl', LookUpCtrl);
    
        // add the dependency injections to function
        function LookUpCtrl($location) {
            var vm = this;
    
            vm.results = [... ];
    
            vm.go = function (path) {
                $location.path(path);
            };
    
        } 
    

    那么对于go(),您的控制器中没有功能go(),如果您这样做了,您将不会使用前导/ 来表示$state.go()

    如果使用ui-router,可以使用ui-sref指向html中的一个状态:

    <a class="btn btn-md" ui-sref="lookup">Lookup</a>
    

    【讨论】:

    • 谢谢。这也很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    相关资源
    最近更新 更多