你们中的任何人都知道如何在AngularJS中很好地处理锚式哈希链接吗?
我有一个简单的FAQ页面的以下标记
<a href="#faq-1">Question 1</a>
<a href="#faq-2">Question 2</a>
<a href="#faq-3">Question 3</a>
<h3 id="faq-1">Question 1</h3>
<h3 id="faq-2">Question 2</h3>
<h3 id="fa1-3">Question 3</h3>
Run Code Online (Sandbox Code Playgroud)
当点击上面任何一个链接时,AngularJS拦截并将我路由到一个完全不同的页面(在我的例子中,404页面,因为没有与链接匹配的路由.)
我的第一个想法是创建一个匹配" / faq /:chapter " 的路由,并在相应的控制器中检查$routeParams.chapter匹配元素之后,然后使用jQuery向下滚动到它.
但是然后AngularJS又一次打击我,只是滚动到页面的顶部.
所以,这里的任何人都做过类似的事情并且知道一个很好的解决方案吗?
编辑:切换到html5Mode应该解决我的问题,但我们有点必须支持IE8 +所以我担心它不是一个公认的解决方案:/
在我的应用程序的特定页面上,我想到进行服务器调用以更新设置间隔的信息.我偶然发现了一个问题.我希望在用户离开相关页面时取消我的$ timeout,以便应用程序不会尝试使用不再存在的内容.
关于如何解决这个问题的任何想法?
我希望有.less扩展名的文件使用NetBeans中的CSS语法高亮,我不知道如何做到这一点.
我发现这是一个相当耗时的方法(http://netbeans.dzone.com/tips/quickstart-guide-language-supp),但它让我觉得它必须更容易实现.
有谁知道?
我要试着描述这个场景,请跟我说.
我有一个名为Urls的Angular常量,它填充了路由和一些访问它们的方法.
app = angular.module "app"
app.constant "Urls",
routes:
# Main stuff
overview: "/"
users: "/users"
user: "/users/:id"
overview: ->
return @.routes.overview
users: ->
return @.routes.users
user: (id)->
return @.routes.user
.replace(":id", id)
Run Code Online (Sandbox Code Playgroud)
为此使用常量的原因是我需要在应用程序的配置阶段访问它以及在控制器中使用它.
我想要实现的是,我想在视图中使用它,例如;
<ul class="foo">
<li ng-repeat="user in users">
<a href="{{Urls.user(user.id)}}">
{{user.name}}
</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这样的事情?最好不将Urls常量赋给$ rootScope或将其分配给每个控制器$ scope?
我正在尝试编写一个简单的编辑器扩展,仅用于学习目的.此扩展只会检查目标是否为JSON文件,然后计算其键或执行其他任意任务.
这是默认情况下检查器的外观.

然后我开始编写自定义检查器,就像这样.
[CustomEditor(typeof(TextAsset))]
public class TestInspector : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意对DrawDefaultInspector()的调用.
现在检查员看起来像这样.

为什么不绘制默认检查器?我能理解我的扩展基本上什么都不做,对吧?
枚举对象上的Angular特定属性$$hashKey可用于很多事情.
例如DOM定位;
<div ng-repeat="obj in objects">
<label for="field-{{obj.$$hashKey}}">
Label
</label>
<input type="text" id="field-{{obj.$$hashKey}}" />
</div>
Run Code Online (Sandbox Code Playgroud)
在一些奇怪的情况下,我现在体验到了$ hashKey prop尚未设置在我想要访问它的对象上,即使它正在与Angular重复.有没有办法在初始化对象时自己设置此属性?
编辑:我的猜测是存在某种形式的执行顺序问题,当Angular尚未处理重复时我会访问该属性.我正在深深地观察一个物体,在那个物体内是一个带有物体的数组,它正在重复.它也是我需要访问该$$hashKey属性的其中一个对象.
简单的例子;
var MyController = function($scope, Obj)
{
$scope.obj = {
list: [obj, obj, obj, obj]
};
$scope.$watch("obj", function()
{
var lastObj = $scope.obj.list[$scope.obj.list.length - 1];
console.log(lastObj.$$hashKey); // Undefined?
}, true);
$scope.addObj = function()
{
$scope.obj.list.push(new Obj());
};
};
Run Code Online (Sandbox Code Playgroud)
Edit2:jsFiddle http://jsfiddle.net/2sbWp/2/
我正在创建一个既可以在kiosk模式下运行也可以正常运行的应用程序(例如,从Chrome浏览器打开),但某些功能应该只允许在自助服务终端模式下运行.有没有办法让我知道它是在kiosk模式还是在普通的全屏/窗口模式下运行?
这是我的manifest.json中的一个片段,如果有任何帮助的话
{
"manifest_version": 2,
"kiosk_enabled": true,
"kiosk_only": false
}
Run Code Online (Sandbox Code Playgroud) javascript ×5
angularjs ×4
anchor ×1
c# ×1
coffeescript ×1
css ×1
hashtag ×1
less ×1
netbeans ×1
timeout ×1