相关疑难解决方法(0)

AngularJS - 访问子范围

如果我有以下控制器:

function parent($scope, service) {
    $scope.a = 'foo';

    $scope.save = function() {
        service.save({
            a:  $scope.a,
            b:  $scope.b
        });
    }
}

function child($scope) {
    $scope.b = 'bar';
}
Run Code Online (Sandbox Code Playgroud)

什么是让你parentb出来的正确方法child?如果有必要定义bparent,也不会使它语义上不正确假设b是描述相关的东西的属性child,而不是parent

更新:进一步思考它,如果有一个以上的孩子b,它将产生一个冲突parent,b以便检索.我的问题是,什么是访问的正确方法是bparent

angularjs

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

在Karma + AngularJS测试中加载模拟JSON文件

我有一个使用Karma + Jasmine进行测试的AngularJS应用程序.我有一个我想要测试的函数,它接受一个大型JSON对象,将其转换为应用程序其余部分更易使用的格式,并返回该转换后的对象.而已.

对于我的测试,我希望你有单独的JSON文件(*.json)只有模拟JSON内容 - 没有脚本.对于测试,我希望能够加载JSON文件并将对象泵入我正在测试的函数中.

我知道我可以在这里描述的模拟工厂中嵌入JSON:http://dailyjs.com/2013/05/16/angularjs-5/但我真的希望JSON不包含在脚本中 - 只需直接JSON文件.

我尝试了一些东西,但我在这方面相当不错.首先,我设置我的Karma以包含我的JSON文件,看看它会做什么:

files = [
    ...
    'mock-data/**/*.json'
    ...
]
Run Code Online (Sandbox Code Playgroud)

这导致:

Chrome 27.0 (Mac) ERROR
Uncaught SyntaxError: Unexpected token :
at /Users/aaron/p4workspace4/depot/sitecatalyst/branches/anomaly_detection/client/anomaly-detection/mock-data/two-metrics-with-anomalies.json:2
Run Code Online (Sandbox Code Playgroud)

所以我把它改成只提供文件而不是"包含"它们:

files = [
    ...
    { pattern: 'mock-data/**/*.json', included: false }
    ...
]
Run Code Online (Sandbox Code Playgroud)

既然他们只是服务,我想我会尝试在我的规范中使用$ http加载文件:

$http('mock-data/two-metrics-with-anomalies.json')
Run Code Online (Sandbox Code Playgroud)

当我运行我收到的规范时:

Error: Unexpected request: GET mock-data/two-metrics-with-anomalies.json
Run Code Online (Sandbox Code Playgroud)

在我的理解中意味着它期望来自$ httpBackend的模拟响应.所以...在这一点上我不知道如何使用Angular实用程序加载文件,所以我想我会尝试jQuery,看看我是否至少可以让它工作:

$.getJSON('mock-data/two-metrics-with-anomalies.json').done(function(data) {
    console.log(data);
}).fail(function(response) {
    console.log(response);
});
Run Code Online (Sandbox Code Playgroud)

这导致:

Chrome 27.0 (Mac) LOG: { readyState: 4,
responseText: 'NOT FOUND',
status: 404,
statusText: 'Not Found' …
Run Code Online (Sandbox Code Playgroud)

angularjs karma-runner

84
推荐指数
4
解决办法
7万
查看次数

标签 统计

angularjs ×2

karma-runner ×1