好的,所以我有一个函数在文件调用rot-n.js中旋转字符串调用rotateString()
。
如何在AngularJS中的ng-model
上访问此函数以在我的视图中显示加密代码?
这是我的代码:
<html ng-app="cipherApp">
<head>
<title>ROT-N CIPHER</title>
<script type="text/javascript" src='https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js'></script>
<script type="text/javascript" src="rot-n.js"></script>
<script type="text/javascript" src="app.js"></script>
<link href='https://fonts.googleapis.com/css?family=Lato'
rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<textarea rows="8" cols="45" ng-model="cipher.encryptIn"></textarea> <input type="number" min="0" max="25" ng-model="cipher.rotN">
<p>{{rotateString(cypher.encryptIn, cypher.rotN)}}</p>
答案 0 :(得分:0)
使用其他控制器时无法访问该功能,您应该选择Factory或Service
或使用事件:使用$ scope。$ on,然后使用$ scope发送它。$ broadcast或$ scope。$ emit
工厂样品:
angular.module('share',[])
.factory('dataService', function() {
var _dataObj = {};
return {
dataObj: _dataObj
};
})
.controller('One', function($scope, dataService) {
$scope.data = dataService.dataObj;
})
.controller('Two', function($scope, dataService) {
$scope.data = dataService.dataObj;
});
答案 1 :(得分:0)
在调用加密函数的作用域上创建一个函数:
app.controller("myController", function($scope) {
$scope.rotFn = function (din) {
var dout;
rotateString(din,dout);
return dout;
};
});
然后使用ng-change
指令调用函数:
<div ng-controller="myController">
<textarea rows="8" cols="45"
ng-model="cypher.encryptIn"
ng-change="cipher.rotN=rotFn(cypher.encriptIn)">
</textarea>
<input type="number" min="0" max="25" ng-model="cipher.rotN">
</div>