它是不好的做法,同时声明ng-app,并ng-controller在<html>标签?
例如: <html class="no-js" ng-app="myApp" ng-controller="MainCtrl">
这被认为是不好的做法吗?我试图<title>动态控制我的应用程序的标记,所以我想MainCtrl尽早声明控制器,因为它的范围在应用程序的其余部分很重要.
然后我可以<title>{{settings.title}}</title>在MainCtrl控制器中使用并让子控制器通过它访问它$scope.$parent.settings.title = "hello world";
我试图使用Underscore.js搜索一组对象,但我似乎无法定位我想要的对象.
console.log(_.findWhere(response.data, { TaskCategory: { TaskCategoryId: $routeParams.TaskCategory } }));
Run Code Online (Sandbox Code Playgroud)
但是,这是返回undefined
$routeParams.TaskCategory等于301
这是我正在搜索的数组中的对象的示例.这个数据用.表示data.response
[{
"TaskCategory": {
"TaskCategoryId": 201,
"TaskName": "TaskName"
},
"TaskCount": 1,
"Tasks": [{
"EventTypeId": 201,
"EventName": "Event Driver",
"EventDate": "0001-01-01T00:00:00",
"EventId": "00000000-0000-0000-0000-000000000000",
}]
},
{
"TaskCategory": {
"TaskCategoryId": 301,
"TaskName": "TaskName"
},
"TaskCount": 1,
"Tasks": [{
"EventTypeId": 201,
"EventName": "Event Driver",
"EventDate": "0001-01-01T00:00:00",
"EventId": "00000000-0000-0000-0000-000000000000",
}]
}]
Run Code Online (Sandbox Code Playgroud)
所以我希望使用该数组中的第二个对象TaskCategory.TaskCategoryId,是否可以使用Underscore获取它?
我使用AngularJS进行奇怪的,仅限safari的滚动行为.
每当用户在页面之间翻转时,页面就会被改变,就好像它们是AJAX一样.我知道他们在AngualrJS中,但最终的行为是当用户切换页面时浏览器不会滚动到顶部.
我试图强制浏览器在使用新控制器时滚动到顶部,但似乎没有做任何事情.
我在每个控制器的顶部运行以下JS:
document.body.scrollTop = document.documentElement.scrollTop = 0;
这也是一个仅限Safari的错误,当页面发生变化时,每个其他浏览器都会滚动到顶部.有没有人遇到过类似的问题或想到更好的解决方法?
我正在尝试使用时区偏移和UTC时间戳来调整时间.
我正在运行以下代码:
var date = {
utc: '2013-10-16T21:31:51',
offset: -480
}
var returnDate = moment(date.utc).utc().zone(date.offset).format('MM/DD/YYYY h:mm A');
Run Code Online (Sandbox Code Playgroud)
我期待的是:10/16/2013 1:31 PM但我最终会结束10/17/2013 9:31 AM
我试图获取以对象开头的所有键和值imageIds.
我的对象如下所示:
{
title: 'fsdfsd',
titleZh: 'fsdfsd',
body: 'fsdf',
bodyZh: 'sdfsdf',
imageIds: '/uploads/tmp/image-3.png',
imageIdsZh: ''
}
Run Code Online (Sandbox Code Playgroud)
但我只需要属性imageIds,和imageIdsZh.但是明天,一个对象可能包含imageIdsBlah,我也需要把它拿起来.我可以从对象中删除前几个属性,但是下一个对象可能包含其他属性,例如foo: 'bar'
是否可以使用$ q在AngularJS中同步触发ajax请求?
我有一个很长的列表vehicles,每个vehicle都events与它们相关联,我需要在用户扩展列表时检索eventdetails每个event列表.
现在,如果用户扩展了列表,我会异步触发多达15个调用,这似乎导致了我正在消耗的API问题,所以我想看看如果我等待每个请求,性能是否得到改善在解雇下一个之前完成.
我试图实现$q延迟下一个请求,直到上一个请求完成,但是我似乎无法绕过使用该服务,这是我目前拥有的:
// On click on the event detail expander
$scope.grabEventDetails = function(dataReady, index) {
if (dataReady == false) {
retrieveEventDetails($scope.vehicles[index].events);
}
}
var retrieveEventDetails = function(events) {
// events is array
var deferred = $q.defer();
var promise = deferred.promise;
var retrieveData = function(data) {
return $http({
url: '/api/eventdetails',
method: 'POST',
data: {
event_number: data.number
},
isArray: true
});
}
_.each(events, function(single_event) {
promise.then(retrieveData(single_event).success(function(data) { …Run Code Online (Sandbox Code Playgroud) 我只是在学习ASP.net MVC,所以如果我不善于解释我的问题,请耐心等待.
是否可以在局部视图中使用与视图中继承的模型不同的模型?
我的视图Index目前继承LoginModel,它处理用户的授权.一旦用户被授权,我希望Index显示todos用户的列表.todos通过LINQ检索.
所以我的部分视图想要继承System.Web.Mvc.ViewPage<IEnumerable<todo_moble_oauth.Models.todo>>,但是当我使用它时我得到一个错误:`传递给字典的模型项是类型的
System.Data.Linq.DataQuery`1[todo_moble_oauth.Models.todo]', but this dictionary requires a model item of type 'todo_moble_oauth.Models.LoginModel'
Run Code Online (Sandbox Code Playgroud)
这是我的Index观点
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<todo_moble_oauth.Models.LoginModel>" %>
<section id="loginForm">
<% if (Request.IsAuthenticated) { %>
<% Html.RenderPartial("_ListTodos"); %>
<% } else { %>
<h1>Todo Mobile</h1>
<blockquote>Easily store your list of todos using this simple mobile application</blockquote>
<% using (Html.BeginForm()) { %>
<%: Html.AntiForgeryToken() %>
<%: Html.ValidationSummary(true) %>
<%: Html.LabelFor(m => m.UserName) …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc model asp.net-mvc-partialview asp.net-mvc-4
我收到的错误只出现在伟大的IE8上,它指向以下功能,特别是该行: return (expDate.getTime() > Date.now());
$.validator.addMethod("checkDocExpiry",function(value) {
var driverLicExp = ($('#drivers-license-expiration').val()) ? $('#drivers-license-expiration').val() : '';
if (driverLicExp != ''){
var expDate = new Date(driverLicExp);
return (expDate.getTime() > Date.now());
}else{
return (true);
}
}, "Your driver's license has expired.");
Run Code Online (Sandbox Code Playgroud)
我不确定是什么原因造成这种情况,我对开发旧版浏览器相当新.这在FF,IE10,Chrome,Safari中运行良好.
任何帮助将非常感激.
谢谢
javascript validation jquery jquery-validate internet-explorer-8
我有一个非常简单的情况,我想在其中设置一个容器元素80vh,然后将内部div设置为该高度的100%.在Chrome上,这将正确呈现,但在Safari上,内部元素没有100%的80vh高度.
.container {
background-color: red;
width: 100%;
height: 80vh;
}
.inner {
height: 100%;
background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)
这是一个显示这个问题的小提琴:http://jsfiddle.net/neilff/24hZQ/
在Chrome上,元素为蓝色,在Safari中为红色.如果没有应用div 80vh的高度,是否有解决此问题的方法.inner?
我正在使用Directives将我的代码分成模板,我希望这些模板基于if条件加载.现在,当我查看网络流量时,Angular会将所有模板发送到客户端,无论ng-if条件是否满足.
<div class="container">
<ul>
<template1 ng-if="taskCategory == 'condition1'"></template1>
<template2 ng-if="taskCategory == 'condition2'"></template2>
<template3 ng-if="taskCategory == 'condition3'"></template3>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
以下是我的一个指令模板的示例:
/* Directive Template */
.directive('template1', [function() {
return {
restrict: 'E',
templateUrl: 'view/templates/template1.tpl.html'
};
}])
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?它按预期可视化工作.但我的印象是ng-if数据会根据条件延迟加载.或者我误解了如何使用ng-if?
javascript ×5
angularjs ×4
safari ×2
ajax ×1
asp.net ×1
asp.net-mvc ×1
css ×1
css3 ×1
date ×1
jquery ×1
model ×1
momentjs ×1
safari7 ×1
time ×1
validation ×1