在AngularJS中设置焦点到输入字段的"角度方式"是什么?
更具体的要求:
<input>此模态中.<input>变得可见(例如,通过单击某个按钮),将焦点设置在它上面.我试图达到第一个要求有autofocus,但只有当模态被打开的第一次,只有在特定的浏览器(如Firefox中这是行不通的)这个作品.
任何帮助将不胜感激.
我的问题涉及如何在AngularJS应用程序中处理模板(也称为部分)的复杂嵌套.
描述我的情况的最好方法是使用我创建的图像:

正如您所看到的,这可能是一个包含大量嵌套模型的相当复杂的应用程序.
应用程序是单页面的,因此它会加载一个index.html,其中包含DOM中带有ng-view属性的div元素.
对于圆圈1,您会看到有一个主要导航将相应的模板加载到ng-view.我是通过传递$routeParams到主app模块来做到这一点的.这是我的应用程序中的一个示例:
angular.module('myApp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when("/job/:jobId/zones/:zoneId", { controller: JobDetailController, templateUrl: 'assets/job_list_app/templates/zone_edit.html' }).
when("/job/:jobId/initial_inspection", { controller: JobDetailController, templateUrl: 'assets/job_list_app/templates/initial_inspection.html' }).
when("/job/:jobId/zones/:zoneId/rooms/:roomId", { controller: JobDetailController, templateUrl: 'assets/job_list_app/templates/room_edit.html' })
}]);
Run Code Online (Sandbox Code Playgroud)
在圆圈2中,加载到其中的模板ng-view具有附加的子导航.然后这个子导航需要将模板加载到它下面的区域 - 但由于ng-view已被使用,我不知道如何去做.
我知道我可以在第一个模板中包含其他模板,但这些模板都非常复杂.我想将所有模板分开,以使应用程序更容易更新,并且不必依赖于必须加载的父模板才能访问其子代.
在第3圈中,您可以看到事情变得更加复杂.子导航模板可能具有第二个子导航,需要将其自己的模板加载到圆圈4中的区域
如何构建AngularJS应用程序来处理模板的这种复杂嵌套,同时保持它们彼此分离?
我正在编写一个小型AngularJS应用程序,它具有登录视图和主视图,配置如下:
$routeProvider
.when('/main' , {templateUrl: 'partials/main.html', controller: MainController})
.when('/login', {templateUrl: 'partials/login.html', controller: LoginController})
.otherwise({redirectTo: '/login'});
Run Code Online (Sandbox Code Playgroud)
我的LoginController检查用户/传递组合并在$ rootScope上设置一个反映这个的属性:
function LoginController($scope, $location, $rootScope) {
$scope.attemptLogin = function() {
if ( $scope.username == $scope.password ) { // test
$rootScope.loggedUser = $scope.username;
$location.path( "/main" );
} else {
$scope.loginError = "Invalid user/pass.";
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常,但如果我访问http://localhost/#/main我最终绕过登录屏幕.我想写一些类似"每当路由改变时,如果$ rootScope.loggedUser为null然后重定向到/ login"
...
......等一下 我能以某种方式听路线变化吗?无论如何我会发布这个问题并继续寻找.
AngularJS是否以任何方式帮助在active当前页面的链接上设置类?
我想有一些神奇的方法,但我似乎无法找到.
我的菜单看起来像:
<ul>
<li><a class="active" href="/tasks">Tasks</a>
<li><a href="/actions">Tasks</a>
</ul>
Run Code Online (Sandbox Code Playgroud)
我在路线上为每个人配备了控制器:TasksController和ActionsController.
但我无法想出一种方法来绑定a控制器链接上的"活动"类.
任何提示?
这个问题看起来很简单,但我找不到答案.
什么是PHP相当于以下C#代码行?
string str = "\u1000";
Run Code Online (Sandbox Code Playgroud)
此示例创建一个带有单个Unicode字符的字符串,其"Unicode数值"为十六进制的1000(十进制为4096).
也就是说,在PHP中,如何创建一个具有单个Unicode字符的字符串,其"Unicode数值"是已知的?
我有一个文字输入.当输入获得焦点时,我想选择输入内的文本.
使用jQuery我会这样做:
<input type="text" value="test" />
Run Code Online (Sandbox Code Playgroud)
$("input[type=text]").click(function() {
$(this).select();
// would select "test" in this example
});
Run Code Online (Sandbox Code Playgroud)
我一直在寻找尝试找到Angular的方法,但我发现的大多数例子都是在处理一个正在观察变化的模态属性的指令.我假设我需要一个正在观察获得焦点的输入的指令.我该怎么办?
自1.3.0-beta.10版本以来,AngularJS有一个新功能:"懒惰的一次性绑定".
简单的表达式可以作为前缀::,告诉角度在首次评估表达式后停止观看.给出的常见示例如下:
<div>{{::user.name}}</div>
Run Code Online (Sandbox Code Playgroud)
是否有类似以下表达式的语法?
<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>
Run Code Online (Sandbox Code Playgroud) 在使用带有AngularJS的SVG时,我遇到了一个奇怪的行为.我正在使用该$routeProvider服务来配置我的路由.当我将这个简单的SVG放在我的模板中时,一切都很好:
<div id="my-template">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect fill="red" height="200" width="300" />
</svg>
// ...
</div>
Run Code Online (Sandbox Code Playgroud)
但是当我添加一个过滤器时,例如:
<div id="my-template">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="blurred">
<feGaussianBlur stdDeviation="5"/>
</filter>
</defs>
<rect style="filter:url(#blurred)" fill="red" height="200" width="300" />
</svg>
</div>
Run Code Online (Sandbox Code Playgroud)
然后:
filter样式时,SVG再次可见.这是路线配置:
$routeProvider
.when('/site/other-page/', {
templateUrl : 'view/Site/OtherPage.html',
controller : 'Site.OtherPage'
})
.when('/', {
templateUrl : 'view/Site/Home.html',
controller : 'Site.Home'
})
.otherwise({
redirectTo : '/'
})
;
Run Code Online (Sandbox Code Playgroud)
请注意,虽然它可以与Firefox"一起使用",但我无法在小提琴中重现Chrome的问题. …
在AngularJS文档中,解释了工厂,服务,值,常量和提供者之间的差异.
最后,我们有一个比较表:
其中一行是"类型友好注射".我无法理解它是什么.
那是什么意思?另外,这意味着,为了使一个值具有这种"类型友好注入",这是以"通过直接使用新运算符进行初始化"为代价的?