小编Ala*_*an2的帖子

使用AngularJS限制字符串的长度

我有以下内容:

<div>{{modal.title}}</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法可以将字符串的长度限制为20个字符?

还有一个更好的问题是,有一种方法可以将字符串更改为截断并...在结尾显示它是否超过20个字符?

filter angularjs angularjs-filter

224
推荐指数
10
解决办法
27万
查看次数

如何在ng-repeat中使用$ index来启用类并显示DIV?

我有一套<li>元素.

<ul>
  <li ng-class="{current: selected == 100}">
     <a href ng:click="selected=100">ABC</a>
  </li>
  <li ng-class="{current: selected == 101}">
     <a href ng:click="selected=101">DEF</a>
  </li>
  <li ng-class="{current: selected == $index }" 
      ng-repeat="x in [4,5,6,7]">
     <a href ng:click="selected=$index">A{{$index}}</a>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

当用户点击上面的某个地址元素然后它应该,设置所选的值并显示<DIV>以下元素之一:

<div  ng:show="selected == 100">100</div>
<div  ng:show="selected == 101">101</div>
<div ng-repeat="x in [4,5,6,7]" ng:show="selected == $index">{{ $index }}</div>
Run Code Online (Sandbox Code Playgroud)

这适用于前两种情况.

  • 当用户单击ABC时,第一个<DIV>显示100并将颜色更改为红色.
  • 单击DEF时,101显示,DEF变为红色.

但是它对于A0,A1,A2和A3根本不起作用

  • 当用户单击A0,A1,A2或A3然后未显示正确时,未设置所选值,并且所有ng-repeat A0,A1,A2和A3的颜色变为红色.

如果您查看此Plunker,最好显示:

http://plnkr.co/edit/7HMeObplaBkx5R0SntjY?p=preview

请注意,在顶部我已添加{{ selected }}为顶部的调试辅助工具.这x in [4,5,6,7]也只是为了模拟一个循环.在现实生活中,我有这个ng-repeat="answer in modal.data.answers".

有谁知道如何设置它,以便 …

angularjs

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

我应该使用.done()和.fail()来获取新的jQuery AJAX代码而不是成功和错误

我这样编码:

$.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        alert(ajaxContext.responseText)
    }
});
Run Code Online (Sandbox Code Playgroud)

但是当我最后查看jQuery .ajax()文档时,似乎建议我应该像下面这样编码,或者至少它建议添加一个.done()和一个.fail():

var request = $.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID }
});

request.done(function (data) {
    xxx;
});
request.fail(function (jqXHR, textStatus) {
    xxx;
});
Run Code Online (Sandbox Code Playgroud)

更新

如果我这样的代码是相同的,还是有一些优势将它分成三个?

$.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID }
}).done(function (data) {
    xxx;
}).fail(function (jqXHR, textStatus) {
    xxx;
});
Run Code Online (Sandbox Code Playgroud)

jquery

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

如何在AngularJS应用程序中添加一些小实用程序功能?

我想在AngularJS应用程序中添加一些实用程序功能.例如:

$scope.isNotString = function (str) {
    return (typeof str !== "string");
}
Run Code Online (Sandbox Code Playgroud)

最好的方法是将它们添加为服务吗?从我所看到的,我可以做到这一点,但后来我想在我的HTML页面中使用这些,所以如果它们在服务中仍然可能吗?例如,我可以使用以下内容:

 <button data-ng-click="doSomething()"
         data-ng-disabled="isNotString(abc)">Do Something
 </button>
Run Code Online (Sandbox Code Playgroud)

有人能给我一个如何添加这些的例子.我应该创建服务还是有其他方法来实现它.最重要的是,我希望这些实用程序功能在一个文件中,而不是与主要设置的另一部分相结合.

我知道有一些解决方案,但没有一个是如此清晰.

解决方案1 - Urban提出的建议

$scope.doSomething = ServiceName.functionName;
Run Code Online (Sandbox Code Playgroud)

这里的问题是我有20个功能和10个控制器.如果我这样做,那将意味着为每个控制器添加大量代码.

解决方案2 - 由我提出

    var factory = {

        Setup: function ($scope) {

            $scope.isNotString = function (str) {
                return (typeof str !== "string");
            }
Run Code Online (Sandbox Code Playgroud)

这样做的缺点是,在每个控制器的开头,我会对通过$ scope的每个服务进行一次或多次这些Setup调用.

解决方案3 - Urban提出的建议

城市提出的创建通用服务的解决方案看起来很好.这是我的主要设置:

var app = angular
    .module('app', ['ngAnimate', 'ui.router', 'admin', 'home', 'questions', 'ngResource', 'LocalStorageModule'])
    .config(['$locationProvider', '$sceProvider', '$stateProvider',
        function ($locationProvider, $sceProvider, $stateProvider) {

            $sceProvider.enabled(false);
            $locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)

我应该将通用服务添加到此,我该怎么做?

angularjs

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

Java中的声明和定义有什么区别?

我对这两个术语感到很困惑.我检查了stackoverflow,对于C++有一个类似的问题,但对于java则没有.

有人可以解释java的两个术语之间的区别吗?

java

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

使用Typescript时,如何停止"类型JQuery上不存在属性"语法错误?

我只在我的应用程序中使用一行jQuery:

$("div.printArea").printArea();
Run Code Online (Sandbox Code Playgroud)

但这给了我一个Typescript错误:

JQuery类型中不存在属性'printArea'?

有人能告诉我如何阻止出现这个错误吗?

jquery typescript

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

为什么git认为我的.sql文件是二进制文件?

我有一些.sql文件,我只是第一次推送到github.但是当我查看提交时它会说:

BIN ????? WebRole/Sql/Database.sql View
Binary file not shown
Run Code Online (Sandbox Code Playgroud)

有人能告诉我它为什么说"二进制文件没有显示"

git github

65
推荐指数
5
解决办法
2万
查看次数

当一些调用工作而其他调用失败时,$ q.all()会发生什么?

当一些调用工作而其他调用失败时,$ q.all()会发生什么?

我有以下代码:

    var entityIdColumn = $scope.entityType.toLowerCase() + 'Id';
    var requests = $scope.grid.data
      .filter(function (rowData, i) {
          return !angular.equals(rowData, $scope.grid.backup[i]);
      })
      .map(function (rowData, i) {
          var entityId = rowData[entityIdColumn];
          return $http.put('/api/' + $scope.entityType + '/' + entityId, rowData);
      });
    $q.all(requests).then(function (allResponses) {
        //if all the requests succeeded, this will be called, and $q.all will get an
        //array of all their responses.
        console.log(allResponses[0].data);
    }, function (error) {
        //This will be called if $q.all finds any of the requests erroring.
        var abc …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angular-promise

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

如何使用AngularJS从JSON源填充选择下拉列表?

我一直在努力寻找例子,但根本找不到任何东西.我唯一知道的是我可以使用http模块来获取我的数据.这是我目前正在做的事情,但它是用Knockout编码的.有人可以给我一些关于如何使用AngularJS重新编码此功能的建议吗?

HTML

<select id="testAccounts" 
   data-bind="options: testAccounts, optionsValue: 'Id', optionsText: 'Name', optionsCaption: 'Select Account', value: selectedTestAccount">
</select>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

<script type='text/javascript'>
    $(document).ready(function () {

        var townSelect = function () {
        var self = this;
        self.selectedTestAccount = ko.observable();
        self.testAccounts = ko.observableArray();
        var townViewModel = new townSelect();
        ko.applyBindings(townViewModel);

        $.ajax({
            url: '/Admin/GetTestAccounts',
            data: { applicationId: 3 },
            type: 'GET',
            success: function (data) {
                townViewModel.testAccounts(data);
            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript angularjs drop-down-menu

63
推荐指数
2
解决办法
16万
查看次数

如何使用AngularJS过滤器格式化数字以具有前导零?

我检查了文档.我想要的是我的数字有四位数和前导零.

22 to 0022
1  to 0001
Run Code Online (Sandbox Code Playgroud)

有人可以帮助并告诉我这是否可以使用数字或其他类型的过滤器?

javascript angularjs

60
推荐指数
7
解决办法
8万
查看次数