这似乎是一个非常简单的问题,但无论出于何种原因,我的PlotType.XY
方法都没有在JS中调用。
HTML:
public void AutoZoom()
{
double max;
double min;
// some code to determine the max/min values for the y-axis
// ...
PlotModel.Axes[1].Reset(); //Reset the axis to clear ViewMinimum and ViewMaximum
((LinearAxis)PlotModel.Axes[1]).Maximum = max;
((LinearAxis)PlotModel.Axes[1]).Minimum = min;
PlotModel.InvalidatePlot(true);
}
控制器:
submit()
我无法更改<ion-view title="Register" hide-nav-bar="true" nav-transition="none" id="page9">
<ion-content padding="true" class="manual-ios-statusbar-padding" scroll="false">
<form id="register-form4" ng-submit="register()" class="list">
<ion-list id="register-list4">
<label class="item item-input" id="register-input7">
<input type="text" ng-model="registration.email" placeholder="Email" required>
</label>
<label class="item item-input" id="register-input9">
<input type="password" ng-model="registration.password" placeholder="Password" required>
</label>
</ion-list>
</form>
<a id="register-button7" ng-click="document.getElementById('register-form4').submit();" class="button button-positive button-block">Create Account</a>
<a ui-sref="login" id="register-button8" class="button button-positive button-block button-clear">Back</a>
<div ng-show="isError">{{ loginError }}</div>
</ion-content>
</ion-view>
标记,即使表单提交.controller('registerCtrl', ['$scope', '$stateParams', "$firebaseAuth", "$location",
function ($scope, $stateParams, $firebaseAuth, $location) {
$scope.register = function() {
var email = $scope.registration.email,
password = $scope.registration.password,
confirmPassword = $scope.registration.confirmPassword;
console.log("Being submitted");
}
}])
会更容易,但是Ionic Creator会自动生成HTML,我无法搞清楚。< / p>
编辑:我想以这种方式提交表单而不是仅仅点击按钮触发<a>
的原因是我要触发HTML input
在表单中,以便检查已输入的字段,因此我不必手动执行
编辑2:我已将register()
标记更改为提交按钮。但是,这仍然没有调用表明未提交表单的required
方法:
<a>
查看这些docs,它应该可以正常工作,因为它几乎是相同的格式
我已经阅读过1个标准HTML register()
和<input type="submit" value="Create Account" id="register-button7" class="button button-positive button-block">
无法协同工作的用户。有谁知道这是真的吗?
答案 0 :(得分:0)
您可以在表单中使用提交类型的html input
或button
。这是JSFiddle的一个工作演示:https://jsfiddle.net/ydbhb5dL/
控制器:
angular
.module('App', [])
.controller('ExampleController', function ($scope) {
$scope.registration = {};
$scope.register = function () {
var email = $scope.registration.email,
password = $scope.registration.password;
console.log('Email:', email);
console.log('Password:', password);
console.log('Being submitted!');
};
});
HTML:
<div ng-app="App" ng-controller="ExampleController">
<ion-view title="Register" hide-nav-bar="true" nav-transition="none" id="page9">
<ion-content padding="true" class="manual-ios-statusbar-padding" scroll="false">
<form id="register-form4" ng-submit="register()" class="list">
<ion-list id="register-list4">
<label class="item item-input" id="register-input7">
<input type="text" ng-model="registration.email" placeholder="Email" required>
</label>
<label class="item item-input" id="register-input9">
<input type="password" ng-model="registration.password" placeholder="Password" required>
</label>
</ion-list>
<input type="submit" class="button-like-link" value="Create Account (button)">
</form>
</ion-content>
</ion-view>
</div>
答案 1 :(得分:-1)
要解决您的问题,请将提交表单的<a>
元素更改为
<a id="register-button7" ng-click="register()" class="button button-positive button-block">Create Account</a>
之前ngClick
无效的原因是因为它$scope
查看了document
,但未定义。 可以将以下行添加到控制器中,但这不是必需的。
$scope.document = document;
如果您坚持不更改表单结构,则可以为提交“按钮”创建一个类似于下面的指令(未经测试)。
angular.module('moduleName').directive('submitForm', function() {
return {
restrict: 'A',
scope: {
formId: '='
},
link: function($scope, $elem) {
$elem.on('click', function() {
document.getElementById($scope.formId).submit();
});
}
};
});
然后您将使用以下内容:
<a id="register-button7" submit-form form-id="register-form4" class="button button-positive button-block">Create Account</a>
如果您仍然不想更改<a>
标记以使用新指令,那么您唯一的另一个选择就是定义$scope.document = document
。
或者,正如@J Orbe所提到的,您可以使用onclick
而不是依赖Angular指令(即ngClick
和submitForm
)。我不确定这是否有资格作为“Angular way”TM,你可能希望避免混合使用Angular和常规JavaScript属性,因为它可能会导致混淆。通常,如果您使用的是Angular,则应尝试使用Angular解决问题。