本页介绍19*19和38*38. http://developer.chrome.com/extensions/browserAction.html#icon
但是这个页面解释了16*16和48*48,128*128. http://developer.chrome.com/extensions/manifest/icons.html
哪个是对的?
我的应用程序初始化$ rootScope中的对象图,就像这样......
var myApp = angular.module('myApp', []);
myApp.run(function ($rootScope) {
$rootScope.myObject = { value: 1 };
});
Run Code Online (Sandbox Code Playgroud)
...然后从该对象图中消耗数据(仅限单向绑定),就像这样......
<p>The value is: {{myObject.value}}</p>
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我随后(在页面渲染完成后)尝试更新$ rootScope并用新的替换原始对象,则会被忽略.我最初认为这是因为AngularJS保留了对原始对象的引用,即使我已经替换它.
但是,如果我将消耗的HTML包装在控制器中,我能够以预期的方式重复更新其范围,并且修改将正确地反映在页面中.
myApp.controller('MyController', function ($scope, $timeout) {
$scope.myObject = { value: 3 };
$timeout(function() {
$scope.myObject = { value: 4 };
$timeout(function () {
$scope.myObject = { value: 5 };
}, 1000);
}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
有没有办法通过$ rootScope实现这一点,还是只能在控制器内完成?此外,是否有更推荐的模式来实施此类操作?具体来说,我需要一种方法来替换AngularJS从AngularJS代码之外使用的完整对象图.
蒂姆,提前谢谢你的建议
编辑:正如评论中所建议的,我已经尝试在$ apply中执行更改,但它没有帮助:
setTimeout(function() {
var injector = angular.injector(["ng", "myApp"]);
var rootScope = injector.get("$rootScope");
rootScope.$apply(function () {
rootScope.myObject = { …
Run Code Online (Sandbox Code Playgroud) 我知道在摘要周期中调用$digest
或$apply
手动会导致"$ digest已在进行中"错误,但我不知道为什么我在这里得到它.
这是一个包装服务的单元测试$http
,服务很简单,只是防止对服务器进行重复调用,同时确保尝试执行调用的代码仍然获得预期的数据.
angular.module('services')
.factory('httpService', ['$http', function($http) {
var pendingCalls = {};
var createKey = function(url, data, method) {
return method + url + JSON.stringify(data);
};
var send = function(url, data, method) {
var key = createKey(url, data, method);
if (pendingCalls[key]) {
return pendingCalls[key];
}
var promise = $http({
method: method,
url: url,
data: data
});
pendingCalls[key] = promise;
promise.then(function() {
delete pendingCalls[key];
});
return promise;
};
return {
post: function(url, data) {
return …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Jasmine测试我的chrome扩展,但是我无法获得calls.length
并按callCount
预期行事.这两种情况下返回undefined
.
我已经包含了代码和规范的示例.如果有帮助的话,这是代码的其余部分:https://github.com/DruRly/kamikaze/tree/closeIdleTab
如何重现:
git clone https://github.com/DruRly/kamikaze/tree/closeIdleTab
cd kamikaze
open SpecRunner.html
投机/ kamikazeSpec.js
describe("kamikaze", function() {
describe("closeIdleTabs", function(){
it("calls closeIdleTab for each tab received", function(){
spyOn(kamikaze, 'closeIdleTab');
kamikaze.closeIdleTabs([1,2,3]);
expect(kamikaze.closeIdleTab.calls.length).toBe(3);
})
})
})
Run Code Online (Sandbox Code Playgroud)
SRC/kamikaze.js
kamikaze = {
...
closeIdleTabs: function(tabs){
tabs.forEach(function(tab){
test.closeIdleTab(tab);
})
},
closeIdleTab: function(tab){
if(tabTimeStamps[tab.id]){
var secondsSinceUpdated = getSecondsSinceUpdated(tab.id)
if(secondsSinceUpdated > (minutesUntilIdle * 60)){
chrome.tabs.remove(tab.id)
}
}
},
...
}
Run Code Online (Sandbox Code Playgroud) 我通过chrome扩展程序上传文件作为表单数据,我的代码如下所示.这里的问题是文件浏览窗口打开一秒钟然后消失.
该问题仅出现在Mac OS中.
manifest.json的:
"background": {
"scripts": ["jszip.js", "background.js"]
},
Run Code Online (Sandbox Code Playgroud)
background.js:
chrome.runtime.onMessage.addListener(function (msg) {
if (msg.action === 'browse')
{
var myForm=document.createElement("FORM");
var myFile=document.createElement("INPUT");
myFile.type="file";
myFile.id="selectFile";
//myFile.onclick="openDialog()";
myForm.appendChild(myFile);
var myButton=document.createElement("INPUT");
myButton.name="submit";
myButton.type="submit";
myButton.value="Submit";
myForm.appendChild(myButton);
document.body.appendChild(myForm);
}
});
Run Code Online (Sandbox Code Playgroud)
popup.js:
window.onload = function () {
chrome.runtime.sendMessage({
action: 'browse'
});
}
Run Code Online (Sandbox Code Playgroud) 我每天要做1-2次通知,重要的是用户不要错过它.有没有办法删除自动关闭,只允许用户手动关闭通知?
我在通知选项中看不到任何选项:
http://developer.chrome.com/extensions/notifications.html#type-NotificationOptions
在我正在研究的项目中,目前我有三个文本框,我需要验证至少有一个文本框已经填充.
我一直在阅读Angular指令的自定义验证,我知道您可以使用以下命令设置指令链接函数中输入的有效性:
ctrl.$parsers.unshift(function(viewValue) {
// validation logic here
});
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我不需要设置单个输入的有效性.如果不符合标准,我需要使整个表单无效.我只是想知道如何处理这个问题?
我想也许我应该创建一个放在封闭表单上的指令,然后使表单无效?
我想我只是在寻找一些关于我应该怎么做的指导,因为我有点不清楚从哪里开始 - 我正在阅读自定义验证的所有材料似乎都是为了验证特定的输入而不是表格上的一系列条件.
我希望我已经清楚了!谢谢..
我正在尝试使用C#使用Google Analytics Embed API服务器端授权,代码如下
public ActionResult Dashboard()
{
ViewBag.Message = "Dashboard.";
var scopes = new string[]
{
AnalyticsService.Scope.Analytics, // view and manage your Google Analytics data
AnalyticsService.Scope.AnalyticsReadonly,
AnalyticsService.Scope.AnalyticsEdit
};
const string serviceAccountEmail = "526261635050-fofbfeicvbpgumafa114te878787878@developer.gserviceaccount.com";
const string keyFilePath = @"D:\key.p12";
var status = RequestAccessTokenAsync(keyFilePath,scopes,serviceAccountEmail);
ViewBag.Token = _accessToken;
return View();
}
private async Task<bool> RequestAccessTokenAsync(string certificateFile, string[] scope, string serviceAccount)
{
var certificate = new X509Certificate2(certificateFile, "notasecret", X509KeyStorageFlags.Exportable);
var serviceAccountCredential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccount)
{
Scopes = scope
}.FromCertificate(certificate));
var status = …
Run Code Online (Sandbox Code Playgroud) 从3天开始我正在努力从Ajax和PHP获得解决方案,我尝试了所有教程,但我无法得到解决方案,我是Ajax,Jquery的新手,但我的问题对你们来说非常简单.
我用jquery和PHP开发了网站,我用HTML(ul,li)创建菜单所以我想要的是,如果我点击菜单项ajax应该发送值到php变量然后执行php函数,但所有这一切都应该发生在同一页面,..
请帮我解决问题.
到目前为止,我尝试过以下方法:
JavaScript的:
<script type="text/javascript">
$("#btn").click(function() {
var val = "Hi";
$.ajax ({
url: "oldindex.php",
data: val,
success: function() {
alert("Hi, testing");
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
PHP和HTML:
<input type="submit" id="btn" value="submit">
<form name="numbers" id="numbers">
<input type="text" name="number" id="number">
</form>
<div id="number_filters">
<a href="abc">1</a>
<a href="def">2</a>
<a href="ghi">3</a>
</div>
Run Code Online (Sandbox Code Playgroud)
所以如果我点击href,我应该得到PHP变量的值它应该只在同一页面发生
我正在尝试根据html 5画布中绘制的矢量构建我的第一个几乎复杂的地图.
除了缩放之外,它运行良好.我注意到以下几点:
我一开始以为这是我的错,也许画布没有被清除.但经过一些测试,"幽灵"消失了,新鬼出现了.
如果有人可以提供帮助,那将会很酷.
代码 - HTML:
<div>
<div style="position:absolute;top:30px;z-index:102;">
<canvas id="canvas" width="1386" height="747" style="position:absolute;"></canvas>
</div>
<div style="position:absolute; top:30px;" id="debugText">Debug</div>
<div style="position:absolute;top:30px; visibility: hidden;">
<canvas id="debugCanvas" width="1386" height="747"></canvas>
</div>
<div style="position:absolute; left: 200px;z-index:99;" id="debugContols">
<a href="#" onClick="javascript:zoomIn(0, 0, 0.5);">Zoom 0.5</a>
<a href="#" onClick="javascript:zoomIn(0, 0, 2);">Zoom 2</a>
<a href="#" onClick="javascript:zoomIn(0, 0, 3);">Zoom 3</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
代码 - Javascript:
var canvas = document.getElementById("canvas");
var debugCanvas = document.getElementById("debugCanvas");
var ctx = canvas.getContext("2d");
var ctxDebug = debugCanvas.getContext("2d");
var context …
Run Code Online (Sandbox Code Playgroud) angularjs ×3
javascript ×3
jasmine ×2
jasmine2.0 ×2
access-token ×1
bdd ×1
c# ×1
html ×1
html5 ×1
html5-canvas ×1
jquery ×1
php ×1
rootscope ×1