小编Hof*_*ffZ的帖子

Angular 1.2:是否可以在表格脏检查中排除输入?

在下面的示例中,是否可以忽略下拉列表的脏状态?现在,如果用户更改所选人员,则会变脏.但是我不关心这个字段在我的表单验证中是否很脏.

function TestingCtrl($scope) {
  $scope.company = '';
  $scope.persons = [{
    name: 'Alice'
  }, {
    name: 'Bob'
  }];


  $scope.selectedPerson = $scope.persons[0];

  $scope.checkForm = function() {
    if ($scope.personForm.$dirty) {
      alert('Form is dirty');
    } else {
      alert('Form is clean');
    }
  }

}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>


<div ng-app>

  <div ng-controller="TestingCtrl">

    <form name="personForm" novalidate>
      Company:
      <input type="text" ng-model="company" required>
      <br>Persons:
      <select ng-options="p.name for p in persons" ng-model="selectedPerson"></select>

    </form>

    <br>
    <button ng-click="checkForm()">Check if dirty</button>

  </div>

</div>
Run Code Online (Sandbox Code Playgroud)

forms validation angularjs

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

AngularJS最佳实践 - 模板与Javascript

默认情况下,Angular在用户导航到路径时从服务器获取HTML模板.考虑到这一点,想象一下这种情况:

  • 用户加载Angular应用程序.主视图有一个名为"Order"的子页面.
  • 当用户正在研究主视图时,新版本的应用程序将在生产中推出.新版本使用新的Javscript和HTML完全重写了Order页面.
  • 用户导航到"订单"页面.浏览器已在步骤1中加载Javascript,因此用户处于旧版本,直到重新加载应用程序.但是新模板在导航时从服务器获取.所以现在Javascript和模板是我们的同步!

我的假设是Javascript/HTML不同步,对吗?

如果是,是否有与此问题相关的最佳做法?

我想一个解决方案是让Angular在app初始化时获取所有模板.但如果应用程序具有数百个HTML视图,则可能会降低性能.

javascript angularjs

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

如何让单个WMS磁贴覆盖整个Google Map?

我基本上想在Google地图中使用这个OpenLayer功能:

new ol.layer.Image({
  source: new ol.source.ImageWMS({
    url: 'someUrl',
    params: {
      'LAYERS': 'someLayer',
      'SRS': 'EPSG:3857',
      'VERSION': '1.1.1'
    },
    ratio: 1,
  })
})
Run Code Online (Sandbox Code Playgroud)

以下是我尝试使用Google Maps API实现此功能.这是一些现有的代码,我已经将静态256大小更改为映射高度/宽度.WMS在地图中正确显示,但仍然会提取多个图块.我只想加载一个瓷砖.以下是工作的OpenLayer解决方案和非工作的Google解决方案一起显示的小提琴:https://jsfiddle.net/HoffZ/9zjd4052/

  var map = new google.maps.Map(document.getElementById("g-map"), {
    zoom: 4,
    center: new google.maps.LatLng(40.0, -100.0)
  });

  // "Normal" 256 tiles
  //var TILE_WIDTH = 256;
  //var TILE_HEIGHT = 256;

  // Set tile size to map size to get just one single tile. But 
  // still  multiple tiles is fetched from server
  var TILE_WIDTH = getMapWidth();
  var TILE_HEIGHT …
Run Code Online (Sandbox Code Playgroud)

javascript gis wms google-maps-api-3

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

Javascript - 如何使用键盘箭头键更改焦点在列表中的链接

当链接没有包含在其他元素中时,我能够改变焦点.

这有效:

HTML

<a id="first" href="#" class='move'>Link</a>
<a href="#" class='move'>Link</a>
<a href="#" class='move'>Link</a>
Run Code Online (Sandbox Code Playgroud)

JS(使用jQuery)

$(document).keydown(
    function(e)
    {    
        // Down key
        if (e.keyCode == 40) {      
            $(".move:focus").next().focus();       
        }

        // Up key
        if (e.keyCode == 38) {      
            $(".move:focus").prev().focus();       
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

演示小提琴

但是,当链接在列表中时,如何实现相同的功能呢?像这样

<ul>
    <li>
        <a id="first" href="#" class='move'>Link</a>
    </li>
    <li>
        <a href="#" class='move'>Link</a>
    </li>
    <li>
        <a href="#" class='move'>Link</a>
    </li>
</ul> 
Run Code Online (Sandbox Code Playgroud)

html javascript navigation jquery focus

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

Delphi DCEF3 - 更改区域设置

我想更改DCEF3(Delphi Chromium Embedded 3)以我的语言挪威语显示本地数据(如时间和日期).现在它默认为英语.

我看到源代码有一个自己的"locales"文件夹(https://code.google.com/p/dcef3/source/browse/#git%2Fbin%2FWin32%2Flocales).如何告诉铬组件使用nb.pak?

delphi chromium chromium-embedded

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

如何使用AngularJS $ templateCache.get()?

当我的Angular控制器初始化时,我需要缓存一些HTML文件.

根据Angular $ templateCache文档,我可以将HTML模板添加到Angular中:

$templateCache.get('templateId.html')
Run Code Online (Sandbox Code Playgroud)

但我不能让这个工作.我试图在控制器内和模块run()函数(Plunker)中获取模板文件.但我可以在网络控制台中看到未提取模板.

app.run(function($templateCache) {
  $templateCache.get('templ.html');
});
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript templates caching angularjs

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

AngularJS表中的键盘导航

我正在尝试将Windows(Delphi VCL)中的特殊表/网格表格移植到Angular应用程序.

可以在此处测试角度应用程序的简化版本:jsFiddle演示.

用户可以根据需要添加任意数量的行,如jsFiddle中所示.

问题是:是否可以使用Angular指令或其他一些Angular魔法解决以下问题?

  1. 按下回车键时跳转到下一个单元格(右侧单元格或新行)
  2. 直接跳到箭头下方的单元格.
  3. 在箭头上方直接跳到上方的单元格.

HTML:

<tbody>
<tr ng-repeat="p in persons">
    <td>
        <input ng-model="p.name">
    </td>
    <td>
        <input ng-model="p.age">
    </td>
    <td>
        <button ng-click="add($index)">Add new person</button>
    </td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

JS:

function TestingCtrl($scope) {

  $scope.persons = [{
      name: 'Alice',
      age: 20
    }, {
      name: 'Bob',
      age: 30
    }];

  $scope.add = function(index) {
    var newPerson = function() {
      return {
        name: '',
        age: ''
      };
    };
    $scope.persons.splice(index + 1, 0, new newPerson());
  }

}
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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