相关疑难解决方法(0)

运行Karma测试的角度错误:HTML5模式需要<base>标记

我有一个带有Rails后端的单页Angular应用程序.我在我的index.html文件中使用了一个标签,但是当我使用Karma运行我的前端单元测试时,我得到了这个:

$location in HTML5 mode requires a <base> tag to be present
Run Code Online (Sandbox Code Playgroud)

我在我的主.js文件中这样做:

angular.module('my.module').config( function($locationProvider, $routeProvider) {
  $locationProvider.html5Mode( true );
}
Run Code Online (Sandbox Code Playgroud)

那么,有没有什么方法可以<base>在业力实际呈现的页面中注入一个元素?或者,告诉Angular/Karma在运行单元测试时忽略此错误?

更新

这个Google Groups线程这个GitHub问题都描述了这个问题,但在这两种情况下解决方案都是简单地提升Angular的版本.我已经做到了,我甚至可以看到angular-mocks.js默认baseHref设置的行...

这是有问题的规范:

describe 'amnResource', ->
  $compile = null
  $rootScope = null

  beforeEach ->
    module 'ngMock'
    module 'amn'
    module 'directive.template.cache'

    inject([ '$compile', '$rootScope', ($c, $r) ->
      $compile = $c
      $rootScope = $r
    ])

  it 'compiles to an article', ->
    console.log $rootScope
    console.log $rootScope.foo
    $rootScope.foo =
      title: …
Run Code Online (Sandbox Code Playgroud)

angularjs karma-runner

40
推荐指数
3
解决办法
3万
查看次数

Angularjs $位置服务显然没有解析url?

我在应用程序中使用角度,基本上是一个包含搜索结果的表格.可以通过类似URL来访问此表http://myapp/?client=clientName

除了其他之外,还为表格实例化角度控制器,用于打开具有行细节的模态对话框(也是基于角度的,具有bootstrap-ui).

这些行详细信息是通过一个服务引入的,该服务具有两个控制器的一些通用功能:一个用于表,一个用于模态.

现在,在此服务中,我有以下代码片段来检索:

service.fetchRelatedElements = function(element, cb) {
  var url = '/search.json?results=20&type='+element.type;
  if ($location.search()['client']) {
    url += '&client=' + $location.search('client');
  }
  return doFetch(url, cb); // actual server json GET
};
Run Code Online (Sandbox Code Playgroud)

目标是知道表是否已将此特定client参数设置为过滤器.

如果我在这个调用的开头放了一个断点,我看到它$location.absUrl()返回当前的浏览器URL(在我的例子中,它有client我感兴趣的参数).

但是$location.search()返回一个空对象.

我使用默认值(即不通过.config()调用配置它)在我的服务中注入$ location服务.而且,正如医生所说:

$ location服务解析浏览器地址栏中的URL(基于window.location),并使URL可供您的应用程序使用.

我错过了什么吗?此时不应该解析URL吗?

谢谢!


更新:我设法让它工作.问题是我没有配置所有服务.我之所以这样做,是因为我认为以这种方式它会采取默认值,但似乎这不是它的工作方式.

javascript service location angularjs

30
推荐指数
3
解决办法
2万
查看次数

AngularJS:获取链接中没有哈希的查询字符串值

我试图使用angularjs获取查询字符串值.

我的网址: http://localhost/example.php?sportsId=3

我应用var goto = $location.search()['sportsId']; 它时返回undefined.

但是,如果我在url中添加hash就像 Url: http://localhost/example.php#?sportsId=3

然后它返回正确的值3.

但在这种情况下,它也给了我 Error: [$parse:syntax] http://errors.angularjs.org/1.3.8/$parse/syntax?p0=undefined&p1=not%20a%20primary%20expression&p2=null&p3=sportsID%3D&p4=sportsID%3D

此外,我的默认$_REQUEST['sportsId']值不适用于哈希格式.

如何使用angularjs从查询字符串中正确获取值?

javascript php angularjs

13
推荐指数
1
解决办法
3万
查看次数

在AngularJS中读取URL参数 - 一种简单的方法?

这里是Angular的新手.我来自PHP和ASP背景,我们读取参数的方式是这样的:

<html>
<head>
    <script type="text/javascript">
        var foo = <?php echo $_GET['foo']; ?>;
        var bar = <?php echo $_GET['bar']; ?>;

        $(document).ready(function() {
            alert('Foo is: ' + foo + ' and bar is: ' + bar);
        });
    </script>
<head>
Run Code Online (Sandbox Code Playgroud)

(这不是完整的代码,但你明白了 - 非常简单)

我之前从未做过"客户端"查询解析.什么是正确的方法?我过去发过一个问题,但我没有得到任何答案.谷歌搜索也没有帮助.

我的网址通常采用以下形式:example.com?foo = 123&bar = 456

这些天是不支持上面的语法?我应该做类似的事情:example.com/foo/123/bar/345吗?

我愿意改变我的URL结构以获得与Angular一起干净利落的东西,但需要指向正确的方向.例如,我听说过ngRoute,但我不知道从哪里开始.这是正确的方法吗?

我过去发过一个问题,但没有得到太多帮助,所以我重新发布了更多信息,以便更清楚.

谢谢你的任何指示.

编辑 - 使用$ location

请注意,我已经尝试过使用$ location,但我这对我来说是不成功的.见下面的代码:

angular.module('myApp')
    .controller('MyController', ['$location', MyController]);

function MyController($location) {
    var params = $location.search();

    alert('foo is: ' + params.foo + ' and bar is: ' + params.bar); …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

5
推荐指数
1
解决办法
4565
查看次数

angularjs $location.search 返回空对象

$location我想像这个例子一样提取我的网址查询字符串。我的网址 -http://someDomain.com/create/index.jsp?queryToken=123abc

在我的指令中:

vm.queryParam = $location.search();
$log.log('vm.queryParam', vm.queryParam); //{}
vm.details.query = vm.queryParam.queryToken;
$log.log('vm.queryToken', vm.details.query); //undefined
Run Code Online (Sandbox Code Playgroud)

我可以在记录时看到一个或多个参数,但是在不起作用$location时提取它们的正确方法是什么?search()

谢谢。

javascript query-string angularjs

3
推荐指数
1
解决办法
3993
查看次数