小编Sam*_*Sam的帖子

不引人注目的验证不适用于动态内容

我在尝试使用不显眼的jquery验证来处理通过AJAX调用动态加载的局部视图时遇到问题.

我花了几天时间试图让这段代码运转起来没有运气.

这是视图:

@model MvcApplication2.Models.test

@using (Html.BeginForm())
{
 @Html.ValidationSummary(true);
 <div id="res"></div>
 <input id="submit" type="submit" value="submit" />
}
Run Code Online (Sandbox Code Playgroud)

部分视图:

@model MvcApplication2.Models.test

@Html.TextAreaFor(m => m.MyProperty);
@Html.ValidationMessageFor(m => m.MyProperty);

<script type="text/javascript" >
  $.validator.unobtrusive.parse(document);
</script>
Run Code Online (Sandbox Code Playgroud)

该模型:

  public class test
  {
    [Required(ErrorMessage= "required field")]
    public int MyProperty { get; set; }
  }
Run Code Online (Sandbox Code Playgroud)

控制者:

    public ActionResult GetView()
    {
        return PartialView("Test");
    }
Run Code Online (Sandbox Code Playgroud)

最后,javascript:

$(doument).ready(function () {
$.ajax({
    url: '/test/getview',
    success: function (res) {

        $("#res").html(res);
        $.validator.unobtrusive.parse($("#res"));
    }
});

$("#submit").click(function () {
    if ($("form").valid()) {
        alert('valid');
        return true;
    } …
Run Code Online (Sandbox Code Playgroud)

unobtrusive-validation asp.net-mvc-4

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

具有多个域的访问控制允许来源

在我的web.config中,我想为access-control-allow-origin指令指定多个域.我不想用*.我试过这个语法:

<add name="Access-Control-Allow-Origin" value="http://localhost:1506, http://localhost:1502" />
Run Code Online (Sandbox Code Playgroud)

这个

<add name="Access-Control-Allow-Origin" value="http://localhost:1506 http://localhost:1502" />
Run Code Online (Sandbox Code Playgroud)

这个

<add name="Access-Control-Allow-Origin" value="http://localhost:1506; http://localhost:1502" />
Run Code Online (Sandbox Code Playgroud)

还有这个

<add name="Access-Control-Allow-Origin" value="http://localhost:1506" />
<add name="Access-Control-Allow-Origin" value="http://localhost:1502" />
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用.什么是正确的语法?

asp.net iis web-config cors

88
推荐指数
5
解决办法
14万
查看次数

加载视图时运行AngularJS初始化代码

当我加载视图时,我想在其关联的控制器中运行一些初始化代码.

为此,我在视图的主要元素上使用了ng-init指令:

<div ng-init="init()">
  blah
</div>
Run Code Online (Sandbox Code Playgroud)

并在控制器中:

$scope.init = function () {
    if ($routeParams.Id) {
        //get an existing object
        });
    } else {
       //create a new object
    }

    $scope.isSaving = false;
}
Run Code Online (Sandbox Code Playgroud)

第一个问题:这是正确的方法吗?

接下来,我对发生的事件序列有疑问.在视图中,我有一个"保存"按钮,它使用ng-disabled指令:

<button ng-click="save()" ng-disabled="isClean()">Save</button>
Run Code Online (Sandbox Code Playgroud)

isClean()函数在控制器中定义:

$scope.isClean = function () {
    return $scope.hasChanges() && !$scope.isSaving;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,它使用$scope.isSavinginit()函数中初始化的标志.

问题:该视图被加载的情况下,isClean函数被调用之前init()功能,因此,该标志isSavingundefined.我该怎么做才能防止这种情况发生?

angularjs

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

angularjs强制文本框中的大写

我试过使用大写过滤器,但它不起作用.我尝试过两种方式:

<input type="text" ng-model="test" uppercase/>
Run Code Online (Sandbox Code Playgroud)

<input type="text" ng-model="{{test | uppercase}}"/>
Run Code Online (Sandbox Code Playgroud)

第二个触发javascript错误:

语法错误:令牌'test'是意外的,期待[:]

我希望文本在用户在文本框中键入时强制为大写.

我怎样才能做到这一点?

javascript uppercase angularjs angularjs-filter

70
推荐指数
6
解决办法
9万
查看次数

从AngularJS中的指令调用父控制器的方法

按照我之前的问题,我现在尝试从我的指令调用父控制器上的方法.我得到一个未定义的参数.这是我做的:

<body ng-app="myApp" ng-controller="MainCtrl">
  <span>{{mandat.rum}}</span>
  <span>{{mandat.surname}}</span>
<input type="text" ng-model="mandat.person.firstname" />
<my-directive mandate-person="mandat.person" updateparent="updatePerson()" >

  </my-directive>
</body>
Run Code Online (Sandbox Code Playgroud)

和剧本:

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

    app.controller('MainCtrl', function ($scope) {
        $scope.mandat = { name: "John", surname: "Doe", person: { id: 1408, firstname: "sam" } };
        $scope.updatePerson = function(person) {
            alert(person.firstname);
          $scope.mandat.person = person;   
        }
    });


    app.directive('myDirective', function () {
        return {
            restrict: 'E',
            template: "<div><span>{{mandatePerson.id}}<span><input type='text' ng-model='mandatePerson.firstname' /><button ng-click='updateparent({person: mandatePerson})'>click</button></div>",
            replace: true,
            scope: { mandatePerson: '=', updateparent: '&' }
            }
        }
    ) …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

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

AngularJS:来自指令的广播事件

我见过人们从他们的代码中的任何地方这样做:

$rootScope.$broadcast('someEvent', someParameter); 
Run Code Online (Sandbox Code Playgroud)

然后在一些控制器中:

$rootScope.$on('someEvent', function(event, e){ /* implementation here */ });
Run Code Online (Sandbox Code Playgroud)

现在,我想从一个指令中扩展一个事件.在rootScope级别播放它是一种好习惯吗?我想在控制器中处理这个事件.我可以使用$ scope,还是我还要听$ rootScope?

angularjs angularjs-scope

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

ASP.NET MVC 4编辑器模板,用于基本类型

我为Number输入创建了一个模板,如果我这样做的话

@Html.EditorFor(model => model.SomeValue, "Number")
Run Code Online (Sandbox Code Playgroud)

它工作正常,使用模板.

但是这不起作用:

@Html.EditorFor(model => model.SomeValue)
Run Code Online (Sandbox Code Playgroud)

为什么我需要为基本类型指定编辑器模板的名称?

mvc-editor-templates asp.net-mvc-4

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

构建我的AngularJS应用程序

我完全是使用AngularJs的新手,尽管我已经完成了这些教程,但我脑子里仍然有许多未解决的问题.我现在主要关注的是如何将我的应用程序划分为模块?

基本上我需要构建一个应用程序,它将充当各种应用程序的门户,每个应用程序代表一个业务功能(有时几乎没有任何关系).

在本教程中,他们将展示如何使用多个视图创建一个应用程序.我需要的是一个具有多个模块的应用程序,每个模块都有自己的视图(我可能也有共享视图).

有没有人在这种结构的应用程序上工作?你能分享一下你的经历以及你如何组织事物吗?

AngularJS Seed项目(https://github.com/angular/angular-seed)很好,但它并没有真正展示如何构建复杂的应用程序.

html5 module angularjs

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

AngularJS:指令中的缩小问题

我还有另一个缩小问题.这次是因为传递给指令控制器的$ scope服务.见下面的代码:

angular.module('person.directives').
directive("person", ['$dialog', function($dialog) {
return {
    restrict: "E",
    templateUrl: "person/views/person.html",
    replace: true,
    scope: {
        myPerson: '='
    },     
    controller: function ($scope)
    {                   
        $scope.test = 3;                   
    }
}
}]);
Run Code Online (Sandbox Code Playgroud)

如果我注释掉控制器部分,那么它工作正常.

正如您所看到的,我已经使用了该指令的数组声明,因此即使在缩小之后,Angular也会知道$ dialog服务.但是我应该如何为控制器上的$ scope服务做呢?

minify angularjs angularjs-directive

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

为CHROME_BIN设置环境变量不起作用

我正在尝试使用Karma来测试我的js脚本.在文档中它说我应该为以下环境变量设置CHROME_BIN:

我把它设置为

%PROGRAMFILES(86)%"\谷歌\镀铬\应用\的chrome.exe

但是当我%CHROME_BIN%在DOS中键入时,它会因为被截断到C:\Program空间而失败Program Files.

我该怎么做才能解决这个问题?

environment-variables karma-runner

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