小编Nei*_*eil的帖子

在html标签上声明ng-app和ng-controller是不是很糟糕?

它是不好的做法,同时声明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";

javascript angularjs

34
推荐指数
2
解决办法
7897
查看次数

从包含特定值的数组中获取对象

我试图使用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获取它?

javascript underscore.js

31
推荐指数
2
解决办法
6万
查看次数

AngularJS + Safari:强制页面在页面切换时滚动到顶部

我使用AngularJS进行奇怪的,仅限safari的滚动行为.

每当用户在页面之间翻转时,页面就会被改变,就好像它们是AJAX一样.我知道他们在AngualrJS中,但最终的行为是当用户切换页面时浏览器不会滚动到顶部.

我试图强制浏览器在使用新控制器时滚动到顶部,但似乎没有做任何事情.

我在每个控制器的顶部运行以下JS:

document.body.scrollTop = document.documentElement.scrollTop = 0;

这也是一个仅限Safari的错误,当页面发生变化时,每个其他浏览器都会滚动到顶部.有没有人遇到过类似的问题或想到更好的解决方法?

safari angularjs

24
推荐指数
3
解决办法
4万
查看次数

Moment.Js:使用UTC和时区偏移量抵消日期

我正在尝试使用时区偏移和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

javascript time date momentjs

24
推荐指数
1
解决办法
4万
查看次数

JavaScript:如何获取以特定字符串开头的对象的所有键和值?

我试图获取以对象开头的所有键和值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'

javascript

14
推荐指数
1
解决办法
6646
查看次数

AngularJS:使用$ q同步触发ajax调用

是否可以使用$ q在AngularJS中同步触发ajax请求?

我有一个很长的列表vehicles,每个vehicleevents与它们相关联,我需要在用户扩展列表时检索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)

ajax angularjs

9
推荐指数
1
解决办法
2万
查看次数

ASP.net MVC4:在局部视图中使用不同的模型?

我只是在学习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

8
推荐指数
1
解决办法
2万
查看次数

IE8:对象不支持此属性或方法(日期函数)

我收到的错误只出现在伟大的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

7
推荐指数
2
解决办法
1万
查看次数

Safari:应用于父元素的VH单位不允许儿童100%的身高?

我有一个非常简单的情况,我想在其中设置一个容器元素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

css safari css3 safari7 viewport-units

7
推荐指数
1
解决办法
5468
查看次数

AngularJS:无论ng-if条件如何,加载指令模板

我正在使用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

angularjs

5
推荐指数
1
解决办法
4304
查看次数