我正在尝试创建一个将创建以下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) 我正在使用$ 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成功结束.
如果我有以下功能:
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)
或者有更简单的方法吗?
我使用以下AngularJS代码:
if (angular.equals(rowData, $scope.grid.backup[i])) {
console.log('equal')
}
Run Code Online (Sandbox Code Playgroud)
请注意,AngularJS有一个equals函数,用于比较对象内的每个元素.
我调试时两个对象看起来相同,但Angular不同意.我只是看不出什么是不平等的.还有其他方法可以做比较吗?
我有这样的代码:
$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 吗?
我在尝试这个:
return {
configs: app.config
}
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.有没有另一种方法来返回一个字段"configs"的匿名对象?
我在javascript变量中有这些数据:
var a = {
"answers":[
{"correct":null, "response":true, "text":"x" },
{"correct":null, "response":true, "text":"y" }
]
}
Run Code Online (Sandbox Code Playgroud)
我想将此发送到服务器但排除correct和text字段.我怎样才能删除这些?
我的数据库中有三个表.
数据如下所示:
我使用以下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) 我正在使用正则表达式类型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) 我创建了一个使用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)
有人能给我一些关于我做错的建议吗?