小编Sam*_*tar的帖子

尝试创建AngularJS指令时出现模板错误

我正在尝试创建一个将创建以下HTML的指令,所以我不必在很多地方继续写这个:

    <div class="activity-mask" data-ng-show="loading!=0">
        <span>Loading... {{ loading }}</span>
    </div>
    <div class="activity-mask" data-ng-show="fetching!=0">
        <span>Fetching... {{ fetching }}</span>
    </div>
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

 app.directive('myActivity', function() {
    return {
        restrict: "A",
        template: "<div class='activity-mask' data-ng-show='loading!=0'>" +
                   "<span>Loading... {{ loading }}</span>" + 
                   "</div>" +
                   "<div class='activity-mask' data-ng-show='fetching!=0'>" +
                   "<span>Fetching... {{ fetching }}</span>" +
                   "</div>",
        replace: true
    };
});
Run Code Online (Sandbox Code Playgroud)

但是,这给了我以下错误:

Error: [$compile:tplrt] http://errors.angularjs.org/1.2.2/$compile/tplrt?p0=myActivity&p1=
    at Error (<anonymous>)
    at http://127.0.0.1:81/Scripts/angular-v1.2.2/angular.min.js:6:449
    at wa (http://127.0.0.1:81/Scripts/angular-v1.2.2/angular.min.js:51:488)
    at R (http://127.0.0.1:81/Scripts/angular-v1.2.2/angular.min.js:43:145)
    at R (http://127.0.0.1:81/Scripts/angular-v1.2.2/angular.min.js:43:241)
    at R (http://127.0.0.1:81/Scripts/angular-v1.2.2/angular.min.js:43:241)
    at t (http://127.0.0.1:81/Scripts/angular-v1.2.2/angular.min.js:41:427)
    at h (http://127.0.0.1:81/Scripts/ui-router-master/release/angular-ui-router.min.js:7:11027)
    at l.compile.x …
Run Code Online (Sandbox Code Playgroud)

angularjs

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

如何使用$ q完成一个函数的执行,直到另外两个函数完成?

我正在使用$ q的AngularJS实现.

鉴于以下功能:

   doTask1: function ($scope) {
       var defer = $q.defer();
       $http.get('/abc')
           .success(function (data) {
               defer.resolve();
           })
           .error(function () {
               defer.reject();
           });
       return defer.promise;
   },

   doTask2: function ($scope) {
       var defer = $q.defer();
       var x = 99;
       return defer.promise;
   },
Run Code Online (Sandbox Code Playgroud)

我知道我可以延迟执行另一个这样的函数:

os.doTask1()
    .then(function () {
        doTask3();
});
Run Code Online (Sandbox Code Playgroud)

我想同时开始doTask1和doTask2.有没有办法可以做到这一点,仍然延迟执行,以便doTask3()不会执行,直到doTask1和doTask2成功结束.

javascript angularjs

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

我可以在AngularJS中使用$ q.all并使用不返回.promise的函数吗?

如果我有以下功能:

   doTask1: function ($scope) {
       var defer = $q.defer();
       $http.get('/abc')
           .success(function (data) {
               defer.resolve();
           })
           .error(function () {
               defer.reject();
           });
       return defer.promise;
   },

   doTask2: function ($scope) {
       var defer = $q.defer(); 
       var x = 99;
       return defer.promise;
   },
Run Code Online (Sandbox Code Playgroud)

我被告知我可以等待这两个承诺:

    $q.all([
            doTask1($scope),
            doTask2($scope)
    ])
        .then(function (results) {

        });
Run Code Online (Sandbox Code Playgroud)

如果任务2没有返回承诺怎么样?我在AngularJS的$ q文档中看到有"when".但是我不知道如何使用它并且没有例子.

是不是我必须让doTask2通过两行来返回一个承诺:

var defer = q.defer()
return defer.promise
Run Code Online (Sandbox Code Playgroud)

或者有更简单的方法吗?

javascript promise angularjs

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

我怎样才能找出为什么两个对象与angular.equals不相等?

我使用以下AngularJS代码:

if (angular.equals(rowData, $scope.grid.backup[i])) {
   console.log('equal')
}
Run Code Online (Sandbox Code Playgroud)

请注意,AngularJS有一个equals函数,用于比较对象内的每个元素.

我调试时两个对象看起来相同,但Angular不同意.我只是看不出什么是不平等的.还有其他方法可以做比较吗?

javascript angularjs

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

AngularJS $http 中是否有 finally 之类的东西?

我有这样的代码:

    $http({
        method: 'POST',
        url: "/api/Account/Register",
        data: {
            userName: userName,
            password: password,
            confirmPassword: confirmPassword
        }
    })
    .success(function () {
        successCallback();
    })
    .error(function (data) {
        errorCallback(data);
    })
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使用 AngularJS 添加 finallyCallback 吗?

angularjs

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

如何在Javascript中返回匿名对象?

我在尝试这个:

return {
    configs: app.config
}
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.有没有另一种方法来返回一个字段"configs"的匿名对象?

javascript

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

如何将一行中包含多个字段的数组更改为只有一个数组的数组?

我在javascript变量中有这些数据:

var a = {
  "answers":[
     {"correct":null, "response":true, "text":"x" },
     {"correct":null, "response":true, "text":"y" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想将此发送到服务器但排除correcttext字段.我怎样才能删除这些?

javascript

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

如何修改LEFT OUTER JOIN以为右侧表添加过滤器

我的数据库中有三个表.

  • AdminTest - 保存可供用户使用的测试列表
  • AdminTestQuestion - 包含问题列表
  • UserTest - 保存用户已购买的测试列表.此表中有一个UserId列,表中的行始终具有此值.在进行选择时,我需要能够通过UserId过滤掉该表中的行

数据如下所示:

  • 数据库存储三个测试的结果.test1,test2和test3
  • userId = 1的人购买了test2
  • userId = 2的人购买了test3.

我使用以下SQL:

SELECT 
    AdminTest.AdminTestId,
    AdminTest.Title,
    COUNT(AdminTestQuestion.AdminTestQuestionId) Questions,
    AdminTest.Price,
    UserTest.PurchaseDate
FROM AdminTest
    LEFT OUTER JOIN UserTest
        ON AdminTest.AdminTestId = UserTest.AdminTestId
    JOIN AdminTestQuestion
        ON AdminTest.AdminTestId = AdminTestQuestion.AdminTestId
GROUP BY 
    AdminTest.AdminTestId,
    AdminTest.Title,
    UserTest.UserId
Run Code Online (Sandbox Code Playgroud)

这给我一个这样的报告:

AdminTestId  Title    Questions     Price     PurchaseDate
1            Test1    10            0
2            Test2    20            0         1/1/2011
3            Test3    10            10        2/2/2012
Run Code Online (Sandbox Code Playgroud)

有人可以建议我如何修改它,以便SQL获取一个参数,UserId以便它可以正确显示特定用户购买的测试:

当我为1UserId参数提供值时,我希望看到这一点:

AdminTestId  Title    Questions     Price     PurchaseDate
1            Test1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

如果字符串以“ .d.ts”结尾,该如何排除?

我正在使用正则表达式类型glob在gulp中包含文件。如何使用正则表达式忽略以“ .d.ts”结尾但包含所有其他字符串?

我已经有这个了:

"app/*.*" 
Run Code Online (Sandbox Code Playgroud)

但其中包括任何结尾的文件名。

有没有一种方法可以将其限制为不以.d.ts结尾的代码?因此,例如,这些都可以:

app/abc.html
app/abc.js
app/abc.ts
Run Code Online (Sandbox Code Playgroud)

但这不会

app/abc.d.ts
Run Code Online (Sandbox Code Playgroud)

regex glob gulp

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

如何让AngularJS ui-router正确响应浏览器页面刷新?

我创建了一个使用ur-router的AngularJS应用程序.这是配置的一小部分示例:

 $locationProvider.html5Mode(true);

 var admin = {
        name: 'admin',
        url: '/Admin',
        views: {
            'root': {
                templateUrl: '/app/admin/partials/home.html',
            },
            'content': {
                templateUrl: '/app/admin/partials/overview.html',
            }
        }
    };

    var adminContent = {
        name: 'admin.content',
        parent: 'admin',
        url: '/:content',
        views: {
            'root': {
                templateUrl: '/app/admin/partials/home.html',
            },
            'content': {
                templateUrl: function (stateParams) {
                    return '/app/admin/partials/' + stateParams.content + '.html';
                },
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

当我启动应用程序时,一切正常,然后通过链接转到/ Admin,然后我转到参考链接,它会显示页面:

http://xx.com/Admin/reference
Run Code Online (Sandbox Code Playgroud)

当我单击浏览器后退按钮时,它会按预期返回上一页.

但是如果我现在刷新一切都会出错.它忘记了ui-router并尝试查找页面:xx.com/Admin/Reference

作为参考我正在使用:@version v0.2.13

我的索引文件如下所示:

<head>
    <base href="/" />
Run Code Online (Sandbox Code Playgroud)

有人能给我一些关于我做错的建议吗?

angularjs angular-ui-router

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