Angularjs $watch未侦听元素中的更改
我的控制器中有以下代码:Angularjs $watch未侦听元素中的更改,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我的控制器中有以下代码: app.controller('NewSeller', function($scope, $http, $routeParams, $fileUploader) { $scope.section = $routeParams.section == undefined ? 'main' : $routeParams.section; $scope.aaaa = 'sdsdsdsd'; switch ($scope.section) {
app.controller('NewSeller', function($scope, $http, $routeParams, $fileUploader) {
$scope.section = $routeParams.section == undefined ? 'main' : $routeParams.section;
$scope.aaaa = 'sdsdsdsd';
switch ($scope.section) {
case 'registro':
{
$('.seller-menu').animate({left: -230}, 300);
$scope.section = 'primer-paso';
break;
}
case 'segundo-paso':
{
break;
}
case 'main':
default:
{
break;
}
}
$scope.logo = null;
$scope.$watch('common_commonbundle_standard_address.country',
function(val) {
$http.get(Routing.generate('states') + val).success(function(data) {
if (data.message) {
$scope.message = data.message;
} else {
$scope.states = data;
}
}).error(function(data, status, headers, config) {
if (status == '500') {
$scope.message = "No hay conexión con el servidor.";
}
});
});
$scope.functionAddCompany = function() {
var company = {
"name": $('#addName').val(),
"social": $('#addSocial').val(),
"rif": $('#addRIF').val(),
"address": $('#addAddress').val(),
"phone": $('#addCode').val() + '-' + $('#addNumber').val(),
"address2": $('#addAddress2').val(),
"number": $('#addNo').val(),
"street": $('#addStreet').val(),
"block": $('#addBlock').val(),
"state": $('#addState').val(),
"city": $('#addCity').val(),
"zone": $('#addZone').val(),
"ref": $('#addRef').val()
};
scope = angular.element($(".seller-layout.new")).scope();
scope.section = 'segundo-paso';
};
});
为什么,每当我加载页面时,都会调用:
得到404不是吗
发现
$scope.$watch是否应该监听selectcommon\u commonbundle\u standard\u address.Country选项更改?怎么了
这是相关的HTML代码:
<select
id="common_commonbundle_standard_address_country"
ng-model="common_commonbundle_standard_address.country"
required="required"
tooltip="País"
tooltip-trigger="focus"
tooltip-placement="right"
wv-def="País"
wv-cur=""
wv-err="Error!"
wv-req="The value you selected is not a valid choice"
type="text"
class="ng-scope ng-pristine ng-invalid ng-invalid-required">
...
</select>
如果您正在深入观察一个对象,您可能希望将true指定为检查对象相等性的第三个参数,即
$scope.$watch('common_commonbundle_standard_address', function (newval) {
// .. do your stuff
}, true);
其次,您是否将ng模型=common\u commonbundle\u standard\u address.country放入您的选择中
简而言之,当您可以绑定ng模型时,为什么还要把控制器代码和jquery的东西混在一起?这不仅是毫无意义的,而且jquery触发的事件将超出angular的生命周期,因此它们不会包含在$digest cycles中。这里是plunker,一件事是没有在作用域中定义对象,作用域将不会监视属性
Eeeew JQuery的.val Gross.wtf也是公共\公共捆绑\标准\地址吗?我在其他任何地方都看不到它。@NicolasMoise我将HTML添加到main postYea我必须同意Joe的观点,你的代码可能可以解决你的问题,但它并没有真正利用Angular。检查1我在函数中添加了true,2是的,请参阅我在main post中添加的HTML代码,3你的意思是我用jQuery处理我的控制器吗?name:$'addName'。val是jQuery