动态路由请求呈现不起作用,后端表达

时间:2015-07-16 04:01:17

标签: angularjs node.js express

我想尝试动态路由请求,但它无法正常工作。在这里,我将逐步解释我的编码风格。

public function ajax_()
{
  $this->form_validation->set_rules('par','name of something','required');

  if($this->form_validation->run()!=TRUE)
  {
    echo json_encode(array('result'=>'error','msg'=>validation_errors()));
  }
  else
  {
    echo json_encode(array('result'=>'success','msg'=>'success'));
  }
}

此代码包含URL链接,并且每次使用作为Web地址链接的变量加载它。链接就是这样的 - http://localhost/views/adminpanel/about.html

在AngularJS Controller中包含代码 -

 <nav class="main-nav" ng-show="global.user.user_type!='admin'" ng-repeat="mMenu in Mainmenu">
  <a href="/views/adminpanel/{{mMenu.WebAddress}}" id="load1" ng-click="geturl(mMenu.WebAddress)">{{mMenu.MenuName}}</a>
</nav>

配置和使用ngRoute -

$scope.geturl = function(url)
    {
        var params = {
            url1 : '/views/adminpanel/'+url
        }

        $http({'method' : 'post', url : 'views/adminpanel/'+url, data: params
         }).success(function(data)
        {
        }).
        error(function(data){

        })
    }

在服务器端(Express):

路由HTTP请求,配置中间件和呈现HTML视图

 when('/views/adminpanel/:url', {
     controller: 'homeCntrl',
     templateUrl: 'views/adminpanel/:url'

})

这完全是关于我的渲染过程,但它无法正常工作。在浏览器中它仅显示URL链接但不显示任何内容。我该怎么解决呢?

1 个答案:

答案 0 :(得分:0)

我觉得你很困惑:

  • 首先,你有一个链接和一个ngClick:你应该有这些
  • 你的ngClick有一个空的success函数,所以它对模板
  • 没有任何作用
  • 你的快递路线设置与ngRoute匹配(顺便说一句,POST通常用于创建资源,你应该获取模板)
  • 您的templateUrl将向(字面意思)/views/adminpanel/:url发送GET请求,但不会替换:url

修复它:

  • 为您的API设置不同的端点
  • 使用GET端点而不是POST
  • 将ngRoute更改为:

    when('/views/adminpanel/:url', {
      controller: 'homeCntrl',
      templateUrl: function(param) {
        return '/api/<path>/' + param.url;
      }
    })
    
  • <a>

  • 中删除ngClick