小编PSL*_*PSL的帖子

如何将控制器注入AngularJS中的另一个控制器

我是Angular的新手并试图找出如何做事......

使用AngularJS,如何注入要在另一个控制器中使用的控制器?

我有以下代码段:

var app = angular.module("testApp", ['']);

app.controller('TestCtrl1', ['$scope', function ($scope) {
    $scope.myMethod = function () {
        console.log("TestCtrl1 - myMethod");
    }
}]);

app.controller('TestCtrl2', ['$scope', 'TestCtrl1', function ($scope, TestCtrl1) {
    TestCtrl1.myMethod();
}]);
Run Code Online (Sandbox Code Playgroud)

当我执行此操作时,我收到错误:

Error: [$injector:unpr] Unknown provider: TestCtrl1Provider <- TestCtrl1
http://errors.angularjs.org/1.2.21/$injector/unpr?p0=TestCtrl1Provider%20%3C-%20TestCtrl1
Run Code Online (Sandbox Code Playgroud)

我是否应该尝试在另一个控制器内使用控制器,还是应该将其作为服务?

angularjs angularjs-scope angularjs-controller

96
推荐指数
3
解决办法
14万
查看次数

禁用jquery选择的下拉列表

我有一个选择div,我正在使用所选的jquery插件来设置样式并添加功能(最值得注意的是,搜索).div看起来像这样,

 <select data-placeholder="add a foobar" id="foobar" style="width: 350px;">
 <option value=""></option>
 </select>
Run Code Online (Sandbox Code Playgroud)

我正在使用这样选择的插件,

 $('#foobar').chosen();
Run Code Online (Sandbox Code Playgroud)

当一些AJAX正在加载时,我想禁用整个<select>div.也许有这样的事情,

 $('#foobar').disable()
Run Code Online (Sandbox Code Playgroud)

或这个

 $('#foobar').prop('disabled', true)
Run Code Online (Sandbox Code Playgroud)

我想你应该已经明白了.

关于如何做到这一点的任何想法?我已经尝试了很多不同的东西,比如使用jquery惯用法来禁用东西,禁用<select>它只是禁用底层选择,而不是选择它上面的东西.我甚至采取了手动添加另一个高的div而z-index只是灰色的盒子,但我认为这可能是丑陋和错误.

谢谢您的帮助!

javascript jquery jquery-chosen

81
推荐指数
4
解决办法
8万
查看次数

在javascript中将字节数组转换为字符串

如何将字节数组转换为字符串?

我发现这些功能正好相反:

function string2Bin(s) {
    var b = new Array();
    var last = s.length;

    for (var i = 0; i < last; i++) {
        var d = s.charCodeAt(i);
        if (d < 128)
            b[i] = dec2Bin(d);
        else {
            var c = s.charAt(i);
            alert(c + ' is NOT an ASCII character');
            b[i] = -1;
        }
    }
    return b;
}

function dec2Bin(d) {
    var b = '';

    for (var i = 0; i < 8; i++) {
        b = (d%2) + b;
        d …
Run Code Online (Sandbox Code Playgroud)

javascript casting

69
推荐指数
6
解决办法
17万
查看次数

AngularJS Dropdown需要验证

以下是我的代码段.我想用angular来验证我的下拉列表.

<td align="left" width="52%"> 
  <span class="requiredSmall">*</span> 
    <select class="Sitedropdown" style="width: 220px;" 
            ng-model="selectedSpecimen().serviceID" 
            ng-options="service.ServiceID as service.ServiceName for service in services"> 
         <option value="" ng-selected="selected">Select Service</option> 
   </select> 
</td>
Run Code Online (Sandbox Code Playgroud)

有效方式:

有效值可以是"选择服务"之外的任何值,它是我的默认值.像其他ASP.net要求字段验证器DefaultValue ="0"用于下拉列表,所以这里我的下拉列表将从服务绑定,我想选择除"选择服务"之外的所有其他值.

javascript asp.net angularjs angularjs-validation

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

bootstrap最初是折叠元素

我正在使用bootstrap模板,我想改变手风琴默认工作的方式.

如何在首次看到页面时(加载时)关闭切换?

<div class="accordion-heading">
    <a class="accordion-toggle"
       data-toggle="collapse"
       data-parent="#accordion2"
       href="#collapseOne">Open!</a>
</div>
<div id="collapseOne" class="accordion-body collapse in">
    <div class="span6">
        <div class="well well-small">
            <div class="accordion-toggle">
                ...some text...
            </div>
        </div>
    </div>
    <div class="span2"></div>                            
</div>
Run Code Online (Sandbox Code Playgroud)

html css toggle twitter-bootstrap

60
推荐指数
4
解决办法
11万
查看次数

ASP.NET MVC渲染似乎很慢

我在Visual Studio中创建了一个全新的MVC4 Web应用程序,除了为它添加一个Home控制器和一个"Hello world"索引视图之外,它没有做任何事情.然后我安装了MiniProfiler NuGet包并将必要的几行放入_Layout.cshtml.这是我在发布模式下运行网站时获得的(在IIS中托管):

MVC渲染图片

渲染时间因页面加载而异,但130ms的速度与它的速度差不多.这对我来说似乎有点慢,因为我已经看到其他人在30ms或更快时间内呈现页面.有关为什么渲染会因为一个全新的空MVC4项目而变慢的想法?我的处理器是Intel Core i5-2400,机器有16GB RAM.

顺便说一句,这不是第一次加载页面; 在获得130ms的结果之前,我重新加载了几次页面.

更新:
我按照PSCoder的答案中的建议(删除除RazorViewEngine之外的所有内容),并将渲染时间减半:

MVC渲染图片2

这真的很好,但是对于Render页面的主要操作我仍然可以达到70ms或更高; 理想情况下,我想将其减半或更好.

具体来说,我想问:

  • 这个渲染时间是否过于缓慢或者我的机器是否平均?
  • 有什么办法可以加快速度吗?

c# asp.net-mvc performance asp.net-mvc-4

48
推荐指数
2
解决办法
4万
查看次数

如何在动态元素上绑定bootstrap popover

我在动态列表中使用Twitter Bootstrap的popover.列表项有一个按钮,当我单击按钮时,它应该显示弹出窗口.当我在非动态测试时,它工作正常.

这是我的非动态列表的JavaScript

$("button[rel=popover]").popover({ 
    placement : 'right',
    container : 'body',
    html : true,
    //content:" <div style='color:red'>This is your div content</div>"
    content: function() {
      return $('#popover-content').html();
    }

    })
    .click(function(e) {
        e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

但是,它在动态列表上不能很好地工作.当我单击"两次"按钮时它会显示出来,并且只显示一个列表项我点击一次.

我的HTML:

 <ul id="project-list" class="nav nav-list">
   <li class='project-name'>
     <a >project name 1
         <button class="pop-function" rel="popover" ></button>
     </a>
   </li>
   <li class='project-name'>
     <a>project name 2
        <button class="pop-function" rel="popover" ></button>
     </a>
   </li>

 </ul>

<div id="popover-content" style="display:none">
    <button class="pop-sync"></button>
    <button class="pop-delete"></button>
</div>
Run Code Online (Sandbox Code Playgroud)

我的动态JavaScript:

$(document).on("click", "#project-list li" , function(){
   var username = $.cookie("username");
   var …
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom popover twitter-bootstrap

48
推荐指数
3
解决办法
10万
查看次数

无法在angularjs中调用Object.keys

我正在使用UI.Bootstrap手风琴,我已经定义了我的标题:

<accordion-group ng=repeat="(cname, stations) in byClient">
    <accordion-heading>
        {{ cname }} <span class="pull-right"> {{ Object.keys(stations).length }} Stations</span>
    </accordion-heading>
Run Code Online (Sandbox Code Playgroud)

当它显示Object.keys(stations).length解决方案为零.如果我在控制器中放入相同长度的呼叫,我会收回预期的计数.是否存在阻止方法调用在AngularJS中工作的内容?

手风琴的其余部分使用stations了预期的动作,所以我知道它正在被正确填充.该byClient数据结构基本上看起来像这样:

{
    "Client Name" : {
        "Station Name": [
            {...},
            {...}
        ]
    }
 }
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angular-ui-bootstrap

44
推荐指数
1
解决办法
3万
查看次数

如何处理angular-ui-router的解决方案中的错误

我正在使用angular-ui-router resolve来从服务器获取数据,然后再转到状态.有时,对服务器的请求失败,我需要通知用户有关失败的信息.如果我从控制器调用服务器,我可以在then其中调用我的通知服务,以防呼叫失败.我将调用放入服务器,resolve因为我希望后代状态在服务器启动之前等待服务器的结果.

如果对服务器的调用失败,我在哪里可以捕获错误?(我已经阅读了文档,但仍然不确定如何.另外,我正在寻找尝试这个新代码段工具的理由:).

"use strict";

angular.module('MyApp', ["ui.router"]).config([
  "$stateProvider",
  "$urlRouterProvider",
  function ($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise("/item");
    $stateProvider
    .state("list", {
      url: "/item",
      template: '<div>{{listvm}}</div>' +
      	'<a ui-sref="list.detail({id:8})">go to child state and trigger resolve</a>' +
        '<ui-view />',
      controller: ["$scope", "$state", function($scope, $state){
          $scope.listvm = { state: $state.current.name };
      }]
    })
    .state("list.detail", {
      url: "/{id}",
      template: '<div>{{detailvm}}</div>',
      resolve: {
        data: ["$q", "$timeout", function ($q, $timeout) {
          var deferred = $q.defer();
          $timeout(function () {
            //deferred.resolve("successful");
            deferred.reject("fail");   // resolve fails …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router angular-promise

43
推荐指数
2
解决办法
3万
查看次数

命令不使用ng-repeat上的dict语法

我正在尝试使用ng-repeat和字典样式语法并对键值应用顺序.

(key, value) in something | orderBy:'key'

似乎OrderBy没有按预期工作

这里的例子 http://jsfiddle.net/mhXuW/

javascript angularjs angularjs-orderby

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