目前我正在使用AngularJS框架.我正在使用$ route服务深入链接到我的单页应用程序.
现在,我想在我的应用程序中导航,例如,只更改当前URL的搜索部分.在JavaScript中使用$ location服务很容易,但是如何在仅更换搜索部分的情况下从当前路径构造href属性?
我是否必须手动完成或是否有AngularJS方式?
添加:
当然,$ location服务具有计算此类URL的所有方法.但是我无法使用它,因为$ location还会将浏览器窗口导航到新的URL.
手动创建URL还有另一个复杂因素:必须检查是否使用了旧版#-method或新的History API.根据此情况,URL必须包含#-sign.
假设以下程序:
var C = function() { };
x = new C();
Run Code Online (Sandbox Code Playgroud)
表达式x instanceof C产生True,因此x必须知道它是由函数构造的C.有没有办法C直接从中检索名称x?
(在我手头的问题中,我有一个原型层次结构在我的应用程序中实现可能的信号.我必须访问一个信号的类型,它应该等同于用于创建该信号的构造函数.)
谷歌搜索网络我还没有找到任何关于Dart是否应该最终得到Google App Engine托管平台支持的内容.
谷歌是说,达特也应考虑用于开发Web应用程序的服务器部分的语言.
有谁知道更多吗?
使用GHC 6.12.1编译以下Haskell程序会产生错误:
{-# LANGUAGE NoImplicitPrelude #-}
module Example where
import Prelude(Integer, fromInteger, (==))
f :: Integer -> Integer
f n
| n == 0 = 0
Run Code Online (Sandbox Code Playgroud)
即:
example.hs:9:6:不在范围内:`>>'
将import语句更改为时,错误消失了:
import Prelude(Integer, fromInteger, (==), (>>))
Run Code Online (Sandbox Code Playgroud)
这是有道理的.然而,我不明白为什么首先出现错误.我的程序似乎没有使用任何Monad,而>>Monad运算符之一.
我有一个类似下面的网页:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<header>
<span>Logo</span>
<nav>Navigation</nav>
</header>
<main>
<h1>Page heading</h1>
<div>
Page content
</div>
</main>
<footer>
Content information
</footer>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
页面结构类似于当前HTML5草案中的一个示例:http://www.w3.org/html/wg/drafts/html/master/grouping-content.html#the-main-element,我认为它是语义正确.
现在我想使用CSS设置此文档的样式.我想成为顶部的页眉和底部的页脚,当然,这很容易实现.在标题内部,我想将徽标放在右侧,并在中心导航,这也没关系(例如,使用灵活的盒子布局模型,这是现代浏览器支持的一种或另一种方式,或者使用花车).
当我想将主要的内容标题(h1元素)放在标题的左侧时,我的问题就开始了.我可以使用position:absolute,但是这样的布局不是很灵活,并且只要标题或标题的大小发生变化就会中断.建议的CSS网格布局http://www.w3.org/TR/css3-grid-layout/可能能够完全符合我的要求,但据我所知,它仅在IE 10中得到支持(不知何故) .
一个简单而有效的解决方案是简单地重构我的页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<div>
<h1 id="heading">Page heading</h1>
<header>
<span>Logo</span>
<nav>Navigation</nav>
</header>
</div>
<main aria-labelledby="heading">
<div>
Page content
</div>
</main>
<footer>
Content information
</footer>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然而,这个解决方案虽然易于布局,但它的完整语义只能通过aria-*属性表达,并且似乎违背了HTML5语义的精神(特别是主要元素).
虽然我的示例页面可能很简单,但您可以轻松想象一个更复杂的页面,其中更多元素的视觉位置与HTML5标记的流顺序的顺序不同(并且嵌套以便灵活的框布局顺序属性赢得还不够.你会如何解决这个问题?用非语义元素(例如div)重写HTML5标记,使其更多地与视觉布局相对应,然后尽可能用新结构通过语义元素(例如页脚或主要元素)交换非语义元素?
我使用此处描述的方法使用Material Design Icons:
https://github.com/google/material-design-icons#using-svg-sprites
但是,图标总是以黑色结束.我该怎么把它们的颜色改成白色呢?
我知道可以编辑SVG源代码以达到效果,但这似乎不是规范的方法.材料设计图标存储库的CSS图像精灵在不同的版本中取决于颜色,而SVG只有一种颜色(事实上,没有颜色,因为SVG代码中没有提到任何颜色).如果我需要不同的SVG精灵文件用于白色或黑色图标,它们会包含不同的版本,就像他们在CSS图像精灵的情况下那样,不是吗?
我想使用当前的Web组件规范实现一个列表框小部件.此外,生成的列表框应符合ARIA标准.实例化列表框小部件应该如下所示:
<x-listbox>
<x-option>Option 1</x-option>
<x-option>Option 2</x-option>
</x-listbox>
Run Code Online (Sandbox Code Playgroud)
出于清洁和封装的目的,其他所有内容都应该以阴影dom呈现.为了实现这个小部件,两个自定义元素,<x-listbox>并<x-option>进行登记.影子dom的顶级元素<x-listbox>是一个<div>带有可访问性role=listbox和aria-activedescendent属性的<x-listbox>元素(我不希望元素上有这些属性,因为它们是实现细节.)
为了aria-activedescendent工作,需要选项元素的ID.将id直接放在<x-option>元素上将不会有两个原因:首先,它会污染使用列表框小部件的文档的id命名空间.其次,更重要的是,id不能跨越阴影边界(这是阴影dom的一个目的),因此选项的id必须<div>与aria-activedescendent属性一样生成在相同的阴影dom中.
对此的解决方案是将每个<x-option>被渲染为阴影dom内部的内容<x-listbox>与另一个<div>(属于该阴影dom),其上可以放置id.
我的问题是:这是正确的方法,如何使用自定义元素和阴影dom web apis实现这一点?
以下程序在ghci中产生错误:
{-# LANGUAGE NoImplicitPrelude #-}
import Prelude (Integer, Bool)
import qualified Prelude
class Discrete a where
(==) :: a -> a -> Bool
instance Discrete Integer where
(==) = (Prelude.==)
class Monoid a where
one :: a
(*) :: a -> a -> a
fromInteger :: Integer -> a
fromInteger 1 = one
Run Code Online (Sandbox Code Playgroud)
即:
fromInteger.hs:17:16:
没有实例(Monoid Integer)
来自文字fromInteger':fromInteger 1 = 11' at fromInteger.hs:17:16
Possible fix: add an instance declaration for (Monoid Integer)
In the pattern: 1
In the definition …
我的问题很简单:在Polymer应用程序中实施Material Design(http://www.google.com/design/spec/material-design/introduction.html)的排版和度量规则的推荐方法是什么?例如,如何在CSS中实现sp和dp单元?
我可以包含官方CSS文件吗?我也不确定聚合物的核心和纸元素是否都符合材料设计的一般规则.它说,与Polymer捆绑在一起的Topeka应用程序就是Material Design的一个例子.但是,我还没有通过阅读它的来源,特别是它的样式表来理解这一点.例如,配置文件屏幕(https://github.com/Polymer/topeka-elements/blob/master/topeka-profile.html)不遵循所有度量规则,是吗?(或者我完全弄错了?)
我的Web应用程序使用document.createEvent和event.initEvent创建泛型类型的自定义事件Event.
我想知道这是否被视为良好做法.在这方面,我可以利用已经存在的DOM事件系统,而不必发明和实现我自己的; 另一方面,这可能导致名称冲突,以防未来的标准化事件模型定义具有我选择的名称的事件类型.(或者是否可以命名事件类型?)
我问,因为我刚刚通过浏览stackoverflow了解到将自定义属性放在DOM对象或内置Javascript对象上被认为是不好的做法.
编辑 我想我已经找到了: http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-CustomEvent
所以让我重新解释一下我的问题:我是否正确理解了引用的部分,因为建议CustomEvent在Web应用程序中实际使用它?
添加警告
我刚刚注意到CustomEvent6.之前的Firefox版本不支持它.但是当前基于Webkit的浏览器支持它.
css ×3
javascript ×3
ghc ×2
haskell ×2
html ×2
wai-aria ×2
angularjs ×1
browser ×1
dart ×1
dom ×1
events ×1
html5 ×1
inheritance ×1
polymer ×1
shadow-dom ×1
sprite-sheet ×1
svg ×1